ホームページ > 記事 > ウェブフロントエンド > さまざまな種類の XSS 攻撃
XSS 攻撃の種類は何ですか?具体的なコード例が必要です
インターネットの急速な発展に伴い、Web アプリケーションの役割はますます重要になっています。しかし、Web セキュリティの脅威も増加しており、その中で XSS (クロスサイト スクリプティング攻撃) は最も一般的な攻撃の 1 つです。 XSS 攻撃とは、Web ページに悪意のあるスクリプトを挿入することを指し、ユーザーが Web ページにアクセスすると、そのスクリプトがユーザーのブラウザ上で実行され、情報漏洩や攻撃が引き起こされます。
XSS 攻撃は、保存された XSS、反射型 XSS、DOM ベースの XSS の 3 つのタイプに分類できます。 3 つのタイプについては以下で詳しく紹介し、デモンストレーションのために具体的なコード例を示します。
保存された XSS は、悪意のあるスクリプトがターゲット サーバーに保存されていることを意味し、ユーザーがスクリプトを含むページにアクセスすると、スクリプトが実行されます。 。攻撃者は通常、入力ボックス、掲示板、その他のユーザーが入力できる場所を通じてインジェクションを行います。
以下は、保存された XSS のサンプル コードです:
<script> var maliciousScript = "<script>alert('存储型XSS攻击!')</script>"; // 将恶意脚本存储到数据库中 saveToDatabase(maliciousScript); </script>
上記のコードは、悪意のあるスクリプトをデータベースに保存し、後でデータベースから取得され、ページが読み込まれるときに実行されます。
<!-- 假设这是一个搜索页面 --> <input type="text" name="keyword" value="<?php echo $_GET['keyword']; ?>"> <!-- 将用户输入的值直接输出到页面上,存在XSS风险 --> <script> var keyword = "<?php echo $_GET['keyword']; ?>"; document.write("搜索结果:" + keyword); </script>上記のコードでは、ユーザーの検索キーワードが URL パラメーターを通じてサーバーに渡され、サーバーはそのキーワードをページに挿入します。 HTML、およびユーザーに戻ります。ユーザーが悪意を持って入力したキーワードにスクリプトが含まれている場合、そのスクリプトが実行されます。
DOM ベース XSS
<!-- 假设这是一个计算器页面 --> <input type="text" id="number1" value="0"> <input type="text" id="number2" value="0"> <button onclick="calculate()">计算</button> <!-- 将用户输入的值直接输出到页面上,存在XSS风险 --> <script> function calculate() { var num1 = document.getElementById("number1").value; var num2 = document.getElementById("number2").value; var result = num1 + num2; // 用户输入可能包含恶意脚本 document.getElementById("result").innerText = "计算结果:" + result; } </script>上記のコードでは、ユーザーが入力した数値がページに直接出力されます。ユーザーが悪意を持ってスクリプトを含むと、そのスクリプトが実行されます。 実際の開発では、XSS 攻撃を防ぐために、ユーザー入力の入力検証とフィルタリング、出力の HTML エンコードなどの対策を講じることができます。 つまり、XSS 攻撃は、保存された XSS、反映された XSS、DOM ベースの XSS の 3 つのタイプに分類されます。 Web アプリケーションを保護するには、これらの攻撃の種類と対応する防御策を理解することが重要です。同時に、開発者は、Web アプリケーションのセキュリティを確保するために、潜在的な XSS 脆弱性をタイムリーに発見して修復するために常に警戒を続ける必要があります。
以上がさまざまな種類の XSS 攻撃の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。