自動脆弱性スキャナーのレポートを作成しています。 1つのアイテムは
Webサーバーの設定ミス:安全でないコンテンツタイプの設定(11359)
たとえば、次のように、特定のHTMLページの文字セットを返さないようにします。
HTTP/1.1 200 OK
...
Content-Type: text/html; charset=utf-8
...
問題の報告された応答は、
HTTP/1.1 200 OK
...
Content-Type: text/html
...
これで意味が理解できましたが、CSS、特にJavaScriptについてはどうですか?
CSSおよびJavaScriptリソースの文字セットは、規格によって厳密に定義されていますか?
JavaScript変数に国際化された文字列がある場合はどうなりますか?それらは本質的にエスケープする必要がありますか?または、この場合は文字セットの宣言が必要ですか?
CSSおよびJavaScriptリソースの文字セットは、規格によって厳密に定義されていますか?
いいえ。HTMLと同様に柔軟性があります。つまり、スタイル自体、埋め込みHTML、HTTPヘッダー、またはバイトオーダーマークを使用して、スタイル自体で定義できます。明示的に定義されていない場合は、デフォルトがあるか、埋め込みドキュメントの文字セットエンコーディングに依存している可能性があります。
@charset "UTF-8";
<link rel="stylesheet" type="text/css" charset="utf-8" ...>
Content-Type: text/css; charset=utf-8
JavaScriptについても同様です。したがって、常に文字セットエンコーディングを指定する方が適切です。