こんなエラーがでた。
The XSS Auditor refused to execute a script in 'URL' because its source code was found within the request. The auditor was enabled as the server sent neither an 'X-XSS-Protection' nor 'Content-Security-Policy' header.
発生状況
とあるCMSで、登録したコンテンツの編集を行い、登録ボタンを押したとき、data:,
というURLで真っ白な画面になる。
Consoleを見てみると、登録ボタンを押した時ではなく、画像のアップロードボタン・画像の取り消しボタンを押したときにエラーをはいている。
ちなみに、どの画像をアップロードしようとしてもダメで、他の投稿にアップロードすることは出来た。
画像を登録してから、コンテンツ内容を登録することは出来た。
よって、ある特定の条件でエラーが発生することを確認。
原因
調べたところ、GoogleChromeのXSS対策の仕様に関係しているみたいでした。
様々なところで、ChromeのXSSフィルターを無効化すれば良いように書かれていた。
しかし、フィルターを無効化していいのか判断が微妙…
このページを参考にしたら解決しました。
どうも、
<form>
タグ関係の場合だけ、バグが出るという症状でした。
どんどん調べていくと、結論としては、Google ChromeのXSS対策の仕様?と判断しました。
正確にはプラグインの影響ではなく、そのプラグインの影響を可能にした場合の<form>
タグ関連の影響でした。
(WordPressを一切使わず、シンプルなHTMLだけの場合でも試してみました)
これはプラグインうんぬんではなく、様々な場合に影響があると思っています。
(「投稿」や「固定ページ」等も含まれます。でも公開はできますが)
みたいです。
実際、コンテンツ内容に<form>
が含まれていました。
解決方法
<form name="testform1" action="test1.html">
<input type="text" name="text1" />
<input type="text" name="text2" />
<input type="submit" value="送信" />
</form>
を
<form name="testform1" action='test1.html'>
<input type="text" name="text1" />
<input type="text" name="text2" />
<input type="submit" value="送信" />
</form>
にする。
( ゜Д゜)
って、感じだと思いますが、これで解決しました。
間違い探しが追いついていない方へ。
action="test1.html"
をaction='test1.html'
に変えたのです。
action="
この並びがどうやらダメみたいです。
ダブルクォーテーションかシングルクォーテーションかでこんなに変わるとは・・・
抜本的な解決方法ではないかもしれませんが、今回みたいな場合は、これでokです!
システムとして作る場合は、しっかりとした対策を!