Xフレームオプションをバイパスするにはどうすればよいですか:sameorigin httpヘッダー?
-
03-10-2019 - |
質問
私は、別の会社のSharePointサーバーが提供するレポートをIFRAMEで表示する必要があるWebページを開発しています。彼らはこれで大丈夫です。
IFRAMEでレンダリングしようとしているページでは、Xフレームオプション:Sameoriginが与えられます。
まず、これは彼らが制御できるものですか、それともSharePointがデフォルトで行うことですか?私が彼らにこれをオフにするように頼むなら、彼らはそれをすることさえできますか?
第二に、このHTTPヘッダーを無視してフレームをレンダリングするようにブラウザに伝えるために何かをすることができますか?
解決
2番目の会社がIFRAMEでコンテンツにアクセスできることを満足させる場合、制限を取り除く必要があります - IIS構成でこれをかなり簡単に行うことができます。
それを回避するためにできることは何もありません。また、機能するものはすべて、セキュリティホットフィックスですばやくパッチを適用する必要があります。ソースコンテンツヘッダーがフレームで許可されていないと書かれている場合、ブラウザがフレームをレンダリングするように指示することはできません。これにより、セッションハイジャックが簡単になります。
コンテンツが取得されている場合のみデータを投稿しないと、ページサーバー側を取得し、ヘッダーなしでコンテンツをプロキシできますが、ポストバックが無効になるはずです。
他のヒント
更新2019: 君 できる バイパス X-Frame-Options
で <iframe>
私を使って x-frame-bypass Webコンポーネント。複数のCORSプロキシを使用してiFrame要素を拡張し、最新のFirefoxとChromeでテストされました。
次のように使用できます。
(オプション)を含めます 組み込みのカスタム要素はポリフィルを拡張します サファリの場合:
<script src="https://unpkg.com/@ungap/custom-elements-builtin"></script>
X-Frame-Bypass JSモジュールを含めます。
<script type="module" src="x-frame-bypass.js"></script>
x-frame-bypassカスタム要素を挿入します。
<iframe is="x-frame-bypass" src="https://example.org/"></iframe>
X-Frame-Optionsヘッダーは、ブラウザレベルで実施されるセキュリティ機能です。
ユーザーベース(Corp AppのDept)を制御できる場合は、Greasemonkeyスクリプトのようなものを試してみることができます(可能であれば)Greasemonkeyをすべての人に展開し、b)スクリプトを共有する方法で展開することができます。
または、結果を紹介することができます。サーバーにエンドポイントを作成し、そのエンドポイントにターゲットエンドポイントへの接続を開いて、単にトラフィックを後方に漏らします。
2番目の質問については、使用できます フィドラー 応答を設定するフィルター X-Frame-Options
ヘッダーは手動でのようなものに ALLOW-FROM *
. 。しかし、もちろん、このトリックはあなたのためだけに機能します - 他のユーザーはまだIFrameコンテンツを見ることができません(同じことをしない場合)。
はいフィドラーは私にとってオプションです:
- 開ける フィドラーメニュー>ルール>ルールのカスタマイズ (これは効果的に編集します
CustomRules.js
). - 関数を見つけます
OnBeforeResponse
次の行を追加します。
oSession.oResponse.headers.Remove("X-Frame-Options"); oSession.oResponse.headers.Add("Access-Control-Allow-Origin", "*");
- スクリプトを保存することを忘れないでください!