アカウント名:
パスワード:
今回の 2ch の XSS については、2chのサーバが外部のサービス経由のデータをHTMLに組み入れる際に、Shift_JIS において文字として完結していない半端バイトと、HTMLタグの属性値のダブルクォート (") が結合して Shift_JIS の2バイト文字としてブラウザが扱うことにより、属性値の終了を意味するダブルクォート (") が消失してしまい、メールアドレスとして入力した不正な JavaScript コードが実行されてしまうというものです。
5日前にもコメント [srad.jp] しましたが、詳しくは、文字コードの脆弱性はこの3年間でどの程度対策されたか? [slideshare.net] を読んでいただけると、原因と対策が分かりやすいで
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
クラックを法規制強化で止められると思ってる奴は頭がおかしい -- あるアレゲ人
文字エンコーディングの validation をしないのが原因 (スコア:5, 参考になる)
今回の 2ch の XSS については、2chのサーバが外部のサービス経由のデータをHTMLに組み入れる際に、Shift_JIS において文字として完結していない半端バイトと、HTMLタグの属性値のダブルクォート (") が結合して Shift_JIS の2バイト文字としてブラウザが扱うことにより、属性値の終了を意味するダブルクォート (") が消失してしまい、メールアドレスとして入力した不正な JavaScript コードが実行されてしまうというものです。
5日前にもコメント [srad.jp] しましたが、詳しくは、文字コードの脆弱性はこの3年間でどの程度対策されたか? [slideshare.net] を読んでいただけると、原因と対策が分かりやすいで
Re:文字エンコーディングの validation をしないのが原因 (スコア:5, 興味深い)
バックスラッシュ単体でも問題が起こることを確認しているので、エスケープ文字から来るもののようです。
CloudFlareのemail protectionのバグなので、影響を受けるサイトは多いかもしれません。
もうすこし詳しく書くと、
<a href="mailto:\"></a>[...]<a href="mailto:a onmouseover=[...]//"></a>
が
<a href="/cdn-cgi/l/email-protection#[...].39 [...]<a href="mailto:a onmouseover=[...]//"></a>
となってしまいます。
CloudFlare側には既に通告済みですが、今のところ連絡ありません。