2

Web ページでリッチ テキスト エディタを使用しています。.NET には HTML タグの投稿を防止する機能があるため、JavaScript スニペットを追加して山かっこを に変更し、投稿の前に文字のエイリアス ペアを追加しました。エイリアスはサーバー上で必要な山かっこに置き換えられ、データベースに保存されます。XSS はさておき、この問題を解決する一般的な方法は何ですか。(つまり、より良い方法はありますか?)

XSS (クロスサイト スクリプティング) に関するコメントがあれば、誰かの助けになると確信しています。

4

3 に答える 3

4

実際には、その「機能」をオフにする方法があります。これにより、ユーザーは好きな文字を投稿できるようになり、Javascript を使用して文字をエイリアスに変換する必要がなくなります。リクエストの検証を無効にする方法については、この記事を参照してください。それはあなた自身の検証をしなければならないことを意味しますが、あなたの投稿の音から、それはとにかくあなたがやろうとしていることのようです. こちら の手順に従って、ページごとに無効にすることもできます。

于 2008-09-15T01:25:32.570 に答える
3

最も安全な方法は、ユーザーが WISYWIG でタグを作成できないようにすることだと思います。たぶん、このサイトのようなマークダウン エディターのようなものを使用するか、ここで入手できます。別のアプローチになります。

また、リクエストでマークアップが送信されないようにする Page ディレクティブ ValidateRequest=true を保持します。もちろん、このエラーが発生したときに処理する必要があります。Tamper dataなどの firefox 拡張機能を使用して、いつでも要求にタグを挿入できますが、 ValidateRequest=true は、少なくとも ASP.NET がそれらを受け入れるのを停止する必要があります。

XSS 攻撃に関する率直な投稿が、Jeff によって最近行われました。また、Cookie を HttpOnly にすることについても言及しています。これは、Cookie の盗難に対する半防御です。幸運を!

于 2008-09-15T01:28:50.707 に答える
1

私の最初のコメントは、JavaScript を使用して山かっこを変更しないようにすることです。これを回避するには、ブラウザで JavaScript を無効にするだけです。ほとんどすべてのサーバー側言語には、一部の HTML 文字を対応するエンティティに変換するユーティリティ メソッドがあります。たとえば、PHP は htmlentities() を使用しますが、.NET にも同等のユーティリティ メソッドがあると確信しています。少なくとも、山かっこ、括弧、および二重引用符を正規表現に置き換えることができます。これにより、安全なソリューションへの長い道のりが得られます.

于 2008-09-15T00:59:14.800 に答える