0

私はasp.net mvcを使用しています。ユーザーがテキストを入力してデータベースに保存できるポップアップモーダルウィンドウがあります。このテキストも画面に表示され、データベースから読み取られます。

手始めに、有害なタグがデータベースに表示されないようにしたいのですが、入力をエンコード/デコードする必要がありますか? 現時点では、alert('hello') を入力するとデータベースに保存され、再度表示されるとテキストとして表示されるので、問題ないと思いますが確認をお願いします。

問題の 1 つは、ユーザーが保存するときにこのテキストを取得し、javascript を使用してページの div に追加し、上記のテキストを使用してポップアップ アラートをトリガーすることです。どうすればこれを防ぐことができますか?

私はラテン語、キリル文字などのさまざまなテキストを扱っているので、珍しい文字は必要ありません!

4

2 に答える 2

0

すべての不正な文字を削除する再帰を適用する必要があります。ユーザーが必要としないものはすべて違法であるべきです。文字と数字のみを使用する場合は、すべての特殊文字を削除してください。これを再帰的に適用するようにしてください。それが完了したら、(ほとんど) 無害になるように、すべての入力 をHTML エンコードする必要があります。

安全のために HTML エンコーディングだけに頼らないでください。それを打ち負かす方法はいくつかありますが、攻撃者が戦わなければならない層が多ければ多いほど、攻撃者にとっては難しくなります。

この SO の質問は、HTML エンコーディングで役立つ場合があります: クラス ライブラリの HtmlEncode

于 2013-04-25T02:28:06.653 に答える