Chromeでフォームにscriptタグ等を入力して送信すると”data:;”にリダイレクトされる

Pocket

Rails 4.0.1、Chrome 31.0.1650.57 での開発中に遭遇した。

The XSS Auditor blocked access to ‘URL’ because the source code of a script was found within the request. The server sent an ‘X-XSS-Protection’ header requesting this behavior.

というエラーがコンソールに出て、画面は真っ白に。

エラーログにもある通り、理由はレスポンスヘッダに、

X-XSS-Protection: 1; mode=block

が含まれるようになったから。
参考:Ruby on Rails Security Guide — Ruby on Rails Guides

scriptタグだけじゃなく、iframeなどXSSを発生させそうな内容があるとChromeがはじく。
これらのタグの入力を許可したい場合は、

すればこの機能は無効になる。
CMSでHTML入力機能があるなどやむを得ない場合に。

そうじゃなければ、そもそもhtml_safeしなければいい。(エスケープされていればこの挙動にならないはず)


コメントを残す

Your email address will not be published. Please enter your name, email and a comment.