1

Html.Encode特殊文字を使用したいという問題があります。まず、文字がhtmlコードに置き換えられるため、正しく表示されません。その後、テキストが後で編集されて再送信された場合、これらのhtmlコードが再送信されたときに例外がスローされます。

これはイントラネットサイトであり、意図的な攻撃の可能性はほとんどありませんが、使用しないリスクは本当にありますHtml.Encodeか?誰かが誤って問題を引き起こす特殊文字を送信する可能性はありますか?

または、この問題を回避するためのより良い方法はありますか?

4

3 に答える 3

1

これがイントラネット サイトであり、意図的な攻撃の可能性がほとんどないことを考えると、Html.Encode を使用しないことには本当にリスクがありますか?

はい、はい、またはい。誰かが入力フィールドに特殊文字を入力することによるリスクは常にあります。Web 開発の黄金律は、決してユーザー入力を信頼せず、ユーザー入力から得られる可能性のあるものはすべて常にエンコードすることです。

于 2010-10-12T11:20:42.793 に答える
0

まず、文字がhtmlコードに置き換えられるため、正しく表示されません。

あなたはダブルエンコーディングです。実際には、Html.Encodeを使用して、ユーザーが入力したHTMLタグを表示する必要があります。<ul><li>タグを表示するのではなく、実際に箇条書きにしたい場合を除きます。

その後、テキストが後で編集されて再送信された場合、これらのhtmlコードが再送信されたときに例外がスローされます。

それらの最初の送信を許可するために何をしたとしても、編集を許可するように機能します。繰り返しになりますが、おそらくダブルエンコーディングが原因で、さらに問題が発生しています。

これはイントラネットサイトであり、意図的な攻撃の可能性はほとんどありませんが、Html.Encodeを使用しないリスクは本当にありますか?

深くあなたはすでにセキュリティの見方が間違っていることを知っています;)

于 2010-10-12T14:01:01.957 に答える
0

文字列を二重にエンコードしているように聞こえるため、Html.Encode を呼び出しているすべての場所を確認してください (保存時と表示時にエンコードするか、テンプレート/部分でエンコードして再度エンコードする可能性があります)。

そして、内部であっても、常に文字列をエンコードしてください。そうしないと、不満を抱いた従業員が重大な損害を引き起こす可能性があります。

于 2010-10-12T12:18:55.263 に答える