-4

mysql_fetch_array を Stored Cross-Site-Scripting 攻撃としてマークする Checkmarx ソース コード分析ツール.. 本当のバグである場合、なぜ、どのように解決するのですか? 以下はレポートの説明です。

abc.php の 1 行目のメソッドは、データベースから mysql_fetch_array 要素のデータを取得します。この要素の値は、適切にフィルタリングまたはエンコードされることなくコードを通過し、最終的に abc.php の 1 行目のメソッドでユーザーに表示されます。これにより、ストアド クロスサイト スクリプティング攻撃が可能になる可能性があります。この問題を解決するにはどうすればよいですか?

4

1 に答える 1

3

実際のコード フローを見ずに判断することは不可能です。

ただし、これは実際の脆弱性である可能性があります。保存された XSS は、データベースから信頼されていないデータを取得し、サニタイズやエンコードを行わずに Web ページ出力に直接送信することによって発生します。コードにこの問題がある可能性が非常に高いです。

要するに、攻撃者はこれを悪用して、有効ではあるが悪意のあるデータを (通常の入力フォームを介して) データベースに挿入することができます。別のユーザーがアプリケーションを閲覧してこれらの記録にアクセスすると、アプリケーションはそのデータを引き出して被害者の Web ページに挿入し、スクリプト インジェクション (別名クロスサイト スクリプティング) の脆弱性を作成します。
もちろん、これにより、攻撃者はアプリケーションを介して別のユーザーのブラウザーを制御できます...

これを修正するには、データのソースに関係なく、Web ページに挿入する前にすべての動的出力をエンコードするだけです。これは、特定のコンテキストに従って行う必要があることに注意してください (たとえば、HTML の HTML エンコーディング、HTML 属性値の属性エンコーディング、PHP で JavaScript を動的に作成するための JavaScript エンコーディングなど)。

詳細については、OWASP の wiki のこの記事を参照してください。

于 2016-10-06T11:10:46.590 に答える