OWASPアプリケーションセキュリティ検証標準([〜#〜] asvs [〜#〜])、バージョン3では、V11.2節に次のように記載されています。
すべてのHTTP応答に、安全な文字セットを指定するコンテンツタイプヘッダーが含まれていることを確認します(例:
UTF-8
、ISO 8859-1
)。
この要件を無視することの脅威は何であり、これをどのように悪用することができますか?
クライアント側の攻撃を減らします。
例:XSSが常駐するページがページ文字セットヘッダーを提供しない場合、またはUTF-7エンコーディングに設定されている任意のブラウザーを次のように利用できます。たとえば(UTF-7エンコーディング):
+ADw-SCRIPT+AD4-alert('XSS');+ADw-/SCRIPT+AD4-
XSS攻撃を防ぐのは難しい
詳細: tf-7を使用したXSS
Leviathan SecurityのBlake Franzによる2008年の論文- http://www.leviathansecurity.com/white-papers/flirting-with-mime-types -元の問題空間の一部を文字で識別セット。
Burp Suite Professionalなどの一部のツールは、この問題を正しく識別して説明します- https://portswigger.net/KnowledgeBase/Issues/Details/00800200_HTMLdoesnotspecifycharset
格納されたXSSのOWASPテストガイドで文字セットの言及が表示されます。
この設計上の欠陥は、ブラウザのMIMEの不正処理攻撃に悪用される可能性があります。たとえば、JPGやGIFなどの無害に見えるファイルには、ブラウザによって読み込まれたときに実行されるXSSペイロードを含めることができます。これは、image/gifなどの画像のMIMEタイプをtext/htmlに設定できる場合に可能です。この場合、ファイルはクライアントブラウザによってHTMLとして扱われます。
また、Internet Explorerは、MIMEタイプをMozilla Firefoxや他のブラウザーと同じように処理しないことも考慮してください。たとえば、Internet ExplorerはHTMLコンテンツとしてTXTファイルをHTMLコンテンツとして処理します。MIME処理の詳細については、この章の下部にあるホワイトペーパーセクションを参照してください。
詳細については、Wikipediaのページの「Charset Sniffing」 https://en.wikipedia.org/wiki/Content_sniffing をご覧ください。