The Codest
  • 会社概要
  • サービス
    • ソフトウェア開発
      • フロントエンド開発
      • バックエンド開発
    • Staff Augmentation
      • フロントエンド開発者
      • バックエンド開発者
      • データエンジニア
      • クラウドエンジニア
      • QAエンジニア
      • その他
    • アドバイザリー
      • 監査&コンサルティング
  • 産業
    • フィンテック&バンキング
    • E-commerce
    • アドテック
    • ヘルステック
    • 製造業
    • 物流
    • 自動車
    • アイオーティー
  • 価値
    • CEO
    • CTO
    • デリバリー・マネージャー
  • チーム
  • Case Studies
  • ノウハウ
    • ブログ
    • ミートアップ
    • ウェビナー
    • リソース
採用情報 連絡先
  • 会社概要
  • サービス
    • ソフトウェア開発
      • フロントエンド開発
      • バックエンド開発
    • Staff Augmentation
      • フロントエンド開発者
      • バックエンド開発者
      • データエンジニア
      • クラウドエンジニア
      • QAエンジニア
      • その他
    • アドバイザリー
      • 監査&コンサルティング
  • 価値
    • CEO
    • CTO
    • デリバリー・マネージャー
  • チーム
  • Case Studies
  • ノウハウ
    • ブログ
    • ミートアップ
    • ウェビナー
    • リソース
採用情報 連絡先
戻る矢印 戻る
2021-04-16
ソフトウェア開発

ウェブアプリのセキュリティ - XSSの脆弱性

ルカシュ・コルコ

XSS攻撃は、攻撃者が他のユーザが閲覧するウェブページにクライアント側のスクリプトを注入することを可能にします。この脆弱性の主な影響は、ログインしているユーザーのコンテキストで任意のアクションを実行される可能性と、ログインしているユーザーのコンテキストで任意のデータを読み取られる可能性です。

攻撃シナリオ

  1. 攻撃者は、被害者が利用しているウェブサイト(例えば銀行のウェブサイト)にXSS脆弱性があることを突き止める。
  2. 被害者は現在このページにログインしている
  3. 攻撃者は被害者に細工したURLを送る。
  4. 被害者はURLをクリックする。
  5. 被害者の 銀行 ウェブサイトをご覧ください、 JavaScript コード ユーザーのデータを傍受したり、ユーザーの代わりに攻撃者の口座に送金を実行するために実行を開始する。

被害者に代わって実行される操作は、銀行のAPIを使ってバックグラウンドで行われるため、被害者には見えないかもしれないし、攻撃者が認証に必要なデータ、トークン、クッキーなどを使って後で実行するかもしれないことは注目に値する。

XSSタイプ

1.反射型XSS

これは、任意のパラメータ(GET、POST、クッキーなど)に含まれるHTML/JavaScriptコードがレスポンスに表示されるものです。

何かを検索するためのテキスト入力を持つページ。 検索=フー をURLの末尾に入力する。任意のフレーズを入力した後、それが見つからない場合は、HTML ex.にリターン・メッセージが配置される。

<div>の結果は見つかりませんでした。 <b>フー</b></div>

URLを入れてみよう ?search=。..

2.DOM XSS

これは、JavaScriptの以下のような危険な関数の使用によって、その実行が可能になった場合である。 評価 または `innerHtml`.以下の「ライブ例」は、DOM XSS 攻撃を `innerHtml` 関数である。

3.保存型XSS

これは、悪意のあるコードがサーバー側に書き込まれるものだ。例えば、サーバーにアップロードされたブログ記事に悪意のあるコードを含むコメントを送ることがある。そのタスクは、例えば、管理者のモデレーションを待ち、その後、管理者のセッションデータなどを盗むことである。

注入方法

1.タグの内容

onerror=alert('XSS')`。に

<img src onerror="alert('XSS')" />

2.属性の内容

onmouseover=alert('XSS')`」。 に

<div class="" onmouseover="alert('XSS')""></div>

  1. 引用符を除いた属性の内容

x onclick=alert('XSS')に

<div class="x" onclick="alert('XSS')"></div>

  1. の中で href = "/stock/stock_detail.html?ef属性

javascript:alert('XSS') に

<a href="javascript:alert('XSS')"></a>

  1. JavaScriptコード内の文字列

";alert('XSS')// に

。
  1. JavaScriptイベントを持つアトリビュートでは

');alert('XSS')// どこ #39; はシングルクォートである。

<div onclick="change('&#39;);alert('XSS')//')">ジョン</div>

  1. の中で href = "/stock/stock_detail.html? 属性は、JavaScriptプロトコルの内部で

%27);alert(1)// どこ %27 はシングルクォートである。

<a href="javascript:change('%27);alert(1)//')">クリック</a>


実例

防衛方法

  1. 多くの組み込み関数を使用したデータエンコーディング プログラミング言語.
  2. Using template systems with automatic encoding. Most of the popular frameworks that use such systems protect us from XSS injection (Django, Templates, VueReactなど)。
  3. のような関数は使用しないでください。 評価 または 機能 信頼されていないユーザーデータで
  4. HTMLコードをDOMツリー要素に直接割り当てる関数やプロパティは使用しないでください、 インナーHTML, アウターHTML, 挿入隣接HTML, ドキュメント.write.代わりに、これらの要素に直接テキストを割り当てる関数を使用できます。 テキストコンテンツ または インナーテキスト.
  5. ユーザーを自分の管理下にあるURLにリダイレクトさせる場合は注意が必要です。インジェクションのリスク location = 'javascript('XSS')'.
  6. などのライブラリを使用してHTMLをフィルタリングする。 DOMピュリファイ.
  7. アップロードは慎重に .html または .svg ファイルをアップロードすることができます。アップロードされたファイルを提供する別のドメインを作成できます。
  8. を使用する。 コンテンツ・セキュリティ・ポリシー というメカニズムだ。
  9. ほとんどの一般的なブラウザに組み込まれているアンチXSSフィルターを見てみましょう。

    この記事に興味を持たれた方は、Githubでルカシュをフォローしてください: https://github.com/twistezo

続きを読む

NextJSのデータフェッチ戦略

Rails APIとCORS。意識

なぜ(おそらく)Typescriptを使うべきなのか?

関連記事

上昇する矢印とコスト効率や節約を象徴する金貨が描かれた減少する棒グラフの抽象的なイラスト。左上にはThe Codestのロゴと、ライトグレーの背景に "In Code We Trust "のスローガン。
ソフトウェア開発

製品の品質を落とさずに開発チームを拡大する方法

開発チームの規模を拡大中ですか?製品の品質を犠牲にすることなく成長する方法を学びましょう。このガイドでは、スケールする時期、チーム構成、採用、リーダーシップ、ツールなどの兆候に加え、The Codestがどのように...

ザ・コデスト
ソフトウェア開発

将来を見据えたウェブ・アプリケーションの構築:The Codestのエキスパート・チームによる洞察

The Codestが、最先端技術を駆使してスケーラブルでインタラクティブなウェブアプリケーションを作成し、あらゆるプラットフォームでシームレスなユーザー体験を提供することにどのように秀でているかをご覧ください。The Codestの専門知識がどのようにデジタルトランスフォーメーションとビジネス...

ザ・コデスト
ソフトウェア開発

ラトビアを拠点とするソフトウェア開発企業トップ10社

ラトビアのトップソフトウェア開発企業とその革新的なソリューションについて、最新記事でご紹介します。ラトビアの技術リーダーたちがあなたのビジネスをどのように向上させるかをご覧ください。

thecodest
エンタープライズ&スケールアップ・ソリューション

Javaソフトウェア開発の要点:アウトソーシングを成功させるためのガイド

outsourcingのJavaソフトウェア開発を成功させるために不可欠なこのガイドを読んで、The Codestで効率性を高め、専門知識にアクセスし、プロジェクトを成功に導きましょう。

thecodest
ソフトウェア開発

ポーランドにおけるアウトソーシングの究極ガイド

ポーランドのoutsourcingの急増は、経済、教育、技術の進歩がITの成長とビジネス・フレンドリーな環境を促進していることによる。

ザ・コデスト

ナレッジベースを購読して、IT部門の専門知識を常に最新の状態に保ちましょう。

    会社概要

    The Codest - ポーランドに技術拠点を持つ国際的なソフトウェア開発会社。

    イギリス - 本社

    • オフィス 303B, 182-184 High Street North E6 2JA
      イギリス、ロンドン

    ポーランド - ローカル・テック・ハブ

    • ファブリチュナ・オフィスパーク、アレハ
      ポコジュ18、31-564クラクフ
    • ブレイン・エンバシー, コンストルクトースカ
      11, 02-673 Warsaw, Poland

      The Codest

    • ホーム
    • 会社概要
    • サービス
    • Case Studies
    • ノウハウ
    • 採用情報
    • 辞書

      サービス

    • アドバイザリー
    • ソフトウェア開発
    • バックエンド開発
    • フロントエンド開発
    • Staff Augmentation
    • バックエンド開発者
    • クラウドエンジニア
    • データエンジニア
    • その他
    • QAエンジニア

      リソース

    • 外部ソフトウェア開発パートナーとの協力に関する事実と神話
    • 米国から欧州へ:アメリカの新興企業がヨーロッパへの移転を決断する理由
    • テックオフショア開発ハブの比較:テックオフショア ヨーロッパ(ポーランド)、ASEAN(フィリピン)、ユーラシア(トルコ)
    • CTOとCIOの課題は?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • ウェブサイト利用規約

    Copyright © 2026 by The Codest. All rights reserved.

    jaJapanese
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian es_ESSpanish nl_NLDutch etEstonian elGreek jaJapanese