1

サイトを XSS から保護するためのエンコードの最小量を把握しようとしています。

< (<) と > (>) をタグ内に、" (") と ' (') を属性内にエンコードする必要があることは確かです。

& (&) もエンコードする必要がありますか? ユーザーがデータを保存しているときに二重エンコードに問題がありました (& が &amp; になるため)。アンパサンドをエンコードしなかった場合に満足できるセキュリティ上の脆弱性や欠点はありますか? これは、必要な HTML エンティティを入力できることを意味します。

HTML エンティティとは、具体的にはエンティティ (© ™ など) に対応するアンパサンドのプレフィックス シーケンスを意味します。

この質問は言語に依存しません (もちろん、HTML 部分は除きます)。

編集:スタックオーバーフローを使用すると、HTMLでエンコードされたエンティティを保持できます:)それはわかります。

4

1 に答える 1

1

これらのエンティティをページに表示する場合にのみ、これらのエンティティをエンコードする必要があります (& は、エスケープ シーケンス識別子であるため、> や < と同じくらいエスケープする必要があります)。

& 記号の二重エンコードに問題がある場合は、データをストレージ メカニズム (データベース?) に挿入する前にそれを行っているように思えますが、それはやめてください。ページに表示する場合にのみ、ページのデータをエスケープする必要があります。

于 2013-01-17T15:29:13.670 に答える