web-dev-qa-db-ja.com

X-Frame-Optionsの設定を解除するものはありません(Apache、PHP 5.3)

Twitterの埋め込みツイートと同じように機能する埋め込み可能なウィジェットを実装しようとしています。最も単純な解決策は、最善ではないかもしれませんが、iframeまたはHTML5の埋め込みのように見えますが、どちらもサーバーのX-Frame-Optionsヘッダーによってブロックされています。

PHP 5.3とApache2.2を、完全に制御できる専用サーバーで実行しています。

Iframeの最初の行の最初の行に配置してみましたPHPファイル:

header_remove("X-Frame-Options");

以下を.htaccessに追加してみました。

Header unset X-Frame-Options

Httpd.conf、vhost .confファイル、さらにはPHP.INIをチェックし、「x-frame」を検索しました。どちらにも明らかに関連するものはありません。

私が見るこのサーバーにこれを注入するはずのmod_securityまたは他のプラグインはありません。

それでもcurlは、私が何をしても、次のHTTPヘッダーを検証します。

X-Frame-Options: DENY

まだこのヘッダーを強制している可能性のある、おそらく奇妙な名前の設定がどこかにありますか?

10
Corey

X-Frame-Optionsはssl.confによって強制されました。

コメントアウトしてApacheを再起動すると、.htaccessとPHPヘッダー管理が再び機能するようになりました。

6
Corey

私も同じ問題を抱えていて、これをhttpd.confで書くことを解決しました

ヘッダーはX-Frame-OptionsALLOWALLを追加します。また、Apacheがこのディレクティブを理解するために、ロードされるヘッダーモジュールを構成する必要がありました。次に、httpdを再起動する必要があります。

2

次の実験を考えてみましょう。

Header always set X-Frame-Options "DENY"
Header unset X-Frame-Options
Header set set X-Frame-Options "TEST"

応答ヘッダー:

X-Frame-Options "DENY"
X-Frame-Options "TEST"

2番目の実験:

Header set X-Frame-Options "DENY"
Header unset X-Frame-Options
Header set set X-Frame-Options "TEST"

応答ヘッダー:

X-Frame-Options "TEST"

結論:alwaysオプションは、元の値が設定解除されるのをブロックしますが、新しい値の追加をブロックしません。

0
8ctopus

.htaccessでこれを変更したい場合に備えて、これが次の方法になります。

Header always unset X-Frame-Options env=HTTPS;
0
Vlax