web-dev-qa-db-ja.com

次のコンテンツセキュリティポリシーディレクティブに違反しているため、フレーム ''は拒否されました: "frame-src *"

Content-Security-Policy設定が原因で「xyzが拒否されました」というさまざまな状況に対する多くの解決策を見つけました。

しかし、''が拒否された場合、何が問題なのかを見つけることができないようです。

ブラウザのリテラルエラーメッセージは

Refused to frame '' because it violates the following Content Security Policy directive: "frame-src *".

Chromeでのみ発生します。 FirefoxまたはInternet Explorerでのページの読み込みは問題なく動作します。

次のCSPを設定しました(これは実際には1行です。読みやすくするために改行を入れています)。

default-src 'self';
script-src 'self' 'unsafe-inline' 'unsafe-eval';
style-src 'self' 'unsafe-inline';
img-src 'self' data:;
frame-src 'self' *;
object-src 'none';
font-src 'self' data:;

*が「すべて」を意味することを理解しました。 Chromeが私に愛を示さないのは何ですか?

補足:'unsafe-inline''unsafe-eval'を取り除くことを評価しましたが、現時点ではできません。これが私の問題の原因である可能性がある場合は、方法を指摘してください。それ以外の場合は、これがセキュリティ上の問題であることを認識しており、それを取り除くことに取り組んでいます。とりあえずここにいます。

設定:ウェブサーバーはApacheです:

# rpm -q httpd
httpd-2.4.6-80.el7.centos.1.x86_64

edit1 Webサイト内からクライアントのメールプログラムを開こうとすると、エラーが発生します。ユーザーがリンクをクリックすると、メールプログラムが開くはずです。

Chromeがブロックされたコンテンツとして空の文字列('')を表示するのはこのためかもしれません。

6
Worp

今日、まさにその問題がありました。私はそれを使って解決しました

frame-src data:

ところで「*」はURLのワイルドカードにすぎません。データ:「unsafe-inline」と「unsafe-eval」は個別に追加する必要があります。

2
MrKaschka