システムに重大な脆弱性があります。ユーザーが入力したメタデータをフィルタリングする方法
Web サイトを確認したところ:
システムに重大な脆弱性があります。
脆弱性レベル: 高リスク
脅威の種類: クロスサイト スクリプティング
考えられる結果: 悪意のあるユーザーは、JavaScript、VBScript、ActiveX、HTML 言語、さらには Flash を使用してアプリケーションの脆弱性を悪用し、他のユーザー情報を取得する可能性があります。攻撃者は、セッション Cookie を盗み、アカウントにアクセスし、他のユーザーになりすまして、さらには他のユーザーに表示される Web ページのコンテンツを変更する可能性があります。
説明: このページにはクロスサイト スクリプティング攻撃があります。
クロスサイト スクリプティングの脆弱性 (XSS) は、通常 Javascript 言語で説明され、攻撃者が悪意のあるコードを別のユーザーに送信することを可能にします。ブラウザはスクリプトが信頼できるかどうかを識別できないため、クロスサイトの脆弱なスクリプトが実行され、攻撃者が他のユーザーの Cookie またはセッションを取得できるようになります。
提案: ユーザーが入力したメタデータをフィルタリングすることをお勧めします。
これはどういう意味ですか?フィルタリングの方法を知っている先輩はいますか?
-----解決策---------
addslashes は、SQL 攻撃を防ぐために受信データをエスケープします。 。 magic_quotes_gpc がオンの場合、プログラム内で再度エスケープする必要はなく、
htmlspecialchars をデータ出力に使用できます。 。 。例えば、ユーザーのコメントでは、ユーザーが何を投稿したかを判断することはできません。例えば、上記の脆弱性があります
このとき、ページに出力されたデータに対して htmlspecialchars を実行するだけです。
------解決策------------------
使用。 addedlashes($_POST['username'])
型を判断するために $str または $id が必要になる場合があります。
addslashes を使用してから htmlspecialchars を追加しても、適切な判断をしないと侵入されてしまいます。