LoginSignup
7

More than 5 years have passed since last update.

The XSS Auditor refused to execute a script in~というエラーについて

Last updated at Posted at 2014-12-15

こんなエラーがでた。

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フィルターを無効化すれば良いように書かれていた。

しかし、フィルターを無効化していいのか判断が微妙…

このページを参考にしたら解決しました。

Google 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です!

システムとして作る場合は、しっかりとした対策を!

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7