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がはじく。
これらのタグの入力を許可したい場合は、
1 |
response.headers['X-XSS-Protection'] = '0' |
すればこの機能は無効になる。
CMSでHTML入力機能があるなどやむを得ない場合に。
そうじゃなければ、そもそもhtml_safeしなければいい。(エスケープされていればこの挙動にならないはず)
最近のコメント