[解決済み] Chrome 48+のDisable-web-securityについて
質問
私は
--disable-web-security
フラグがあります。Windows 上の Chrome 48 および Chrome 49 ベータで動作しません。
すべてのインスタンスを停止し、再起動し、最初にフラグを使用して Chrome を実行し、異なるマシンも試しました。ベータ版では、警告ポップアップ ("You are using unsupported flag...") が表示されますが、CORS はまだ強制されています。公開バージョンでは、フラグを完全に無視するようです。
この件に関するニュースや人々の報告はないようなので、ローカルな問題かもしれません。 ヘルプまたは関連する情報があればありがたく思います。
どのように解決するのですか?
2021年10月18日更新
Chrome 95の時点で、MacOSとWindowsで。
--disable-site-isolation-trials
は Web セキュリティを無効にするために必要なフラグのままなので、以下に示す Chrome へのコマンドライン引数はまだ有効です。(警告が表示されるように、いくつかの引数は Chrome によって正式にサポートされていません)。
Web セキュリティを無効にして Chrome を正常に起動したかどうかをテストするには、以下のスニペットを実行します。 ウェブセキュリティテスト を実行してください。
2020-04-30更新
Chrome 81では、Chromeの起動時に必ず
と
--disable-site-isolation-trials
で、空でないプロファイルパスは
--user-data-dir
を使うことで
--disable-web-security
が有効になります。
# MacOS (in Terminal)
open -na Google\ Chrome --args --user-data-dir=/tmp/temporary-chrome-profile-dir --disable-web-security --disable-site-isolation-trials
# Windows (from "Run" dialog [Windows+R] or start menu in Windows 8+)
chrome.exe --user-data-dir=%TMP%\temporary-chrome-profile-dir --disable-web-security --disable-site-isolation-trials
(推測) デフォルトのプロファイルで Web セキュリティを無効にしてブラウザを起動することによる高いセキュリティ リスクを軽減するために、Chrome は空でないプロファイル パスを要求していると思われます。参照
--user-data-dir=
対
--user-data-dir=/some/path
は、以下の詳細を参照してください。
謝辞 スネビョルン のコメントで Chrome 81 のヒントをいただきました。
2020-03-06 更新
Chrome 80(もしかしたらもっと前かもしれない)の時点で、フラグ
--user-data-dir=/tmp/some-path --disable-web-security --disable-site-isolation-trials
はもはや Web セキュリティを無効にしません。
.
Chromium のコードベースがいつ後退したかは不明ですが、Chromium の古いビルドをダウンロードすると、(以下のように の簡単でない手順" に従ってください。 を実行)することが、私が見つけた唯一の回避策です。私は最終的にバージョン 77.0.3865.0 を使用しましたが、これはこれらのフラグで適切に Web セキュリティを無効にします。
元の投稿 2019-11-01
Chrome 67+では、Chromeに渡すために
--disable-site-isolation-trials
フラグを渡す必要があります。
--user-data-dir=
と
--disable-web-security
を追加することで、ウェブセキュリティを本当に無効にすることができます。
MacOS では、完全なコマンドは次のようになります。
open -na Google\ Chrome --args --user-data-dir= --disable-web-security --disable-site-isolation-trials
について
--user-data-dir
について
David Amey の回答
を指定する必要があります。
--user-data-dir=
を指定する必要があります。
--disable-web-security
オプションを尊重します。
--user-data-dir=
対
--user-data-dir=/some/path
を通して空のパスを渡しますが
--user-data-dir=
は
--disable-web-security
で動作しますが、デフォルトの Chrome プロファイルを使用するため、セキュリティ上推奨されません。Chrome のセキュリティを無効にすると、アクティブなセッションは、追加のブラウザ内エクスプロイトに対して脆弱になります。
したがって、Chrome プロファイルの代替ディレクトリとして
--user-data-dir=/tmp/chrome-sesh
などと記述しておくとよいでしょう。クレジットに
James B
がコメントで指摘してくれたことに感謝します。
ソース
この修正は、ブラウザテストフレームワークCypressの中で発見されました。 https://github.com/cypress-io/cypress/issues/1951
ウェブセキュリティテスト
このスニペットを実行して、このソリューションが Google Chrome で実際に Web セキュリティを無効にすることを確認します。
window.addEventListener("DOMContentLoaded", () => {
const iframe = document.querySelector("iframe");
iframe.addEventListener("load", () => {
const canAccessIframeDocument = !!iframe.contentDocument;
document
.querySelector(
canAccessIframeDocument ? ".security-disabled" : ".security-enabled"
)
.classList.remove("hidden");
});
// To ensure the `load` event always fires, only set iframe src after the
// event listener is attached.
iframe.src = "https://google.com";
});
body {
font-family: sans-serif;
}
.hidden {
display: none;
}
/* Web security should normally be enabled, so this is colored green, despite
the objective of this solution to disable it. */
.security-enabled {
font-weight: bold;
color: darkgreen;
}
.security-disabled {
font-weight: bold;
color: darkred;
}
<h1>Web Security Test</h1>
<p>
This test attempts to access the inner contents of a cross-origin iframe,
which is normally disallowed.
</p>
<p class="security-enabled hidden">
Web security is enabled. The cross-origin iframe document could not be
accessed.
</p>
<p class="security-disabled hidden">
Web security is disabled. The cross-origin iframe document was
successfully accessed.
</p>
<iframe class="hidden">
Iframes are not supported.
</iframe>
関連
-
[解決済み] Chrome開発者ツールのスクリプトのブラックボックス化オプション
-
[解決済み] ChromeでCSSカスタムスタイルのボタンから青枠を削除する
-
[解決済み] Google Chrome拡張機能でStripeのクレジットカードフォームを使用。"Payment not secure?" を回避できない。
-
[解決済み] WebKit から target-densitydpi のサポートが削除されました。
-
[解決済み] Chromeの同一生成元ポリシーを無効にする
-
[解決済み] ウェブサイト制作のためのChromeキャッシュの無効化
-
[解決済み] Firefox または Chrome ブラウザから HTTP POST リクエストを手動で送信する方法
-
[解決済み] Chromeを使用してASP.NET Web APIがXMLの代わりにJSONを返すようにするにはどうすればよいですか?
-
[解決済み】自己署名付きlocalhost証明書をChromeが受け入れるようにする方法
-
[解決済み] [ChromeでHTTP POSTのデバッグを行うには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 自己署名入りSSL証明書が無効 - "サブジェクトの代替名がありません".
-
[解決済み] Google ChromeブラウザでF5 refreshとShift+F5の違いは何ですか?
-
[解決済み] Chromeの同一生成元ポリシーを無効にする
-
[解決済み] Google Chromeがlocalhostをhttpsにリダイレクトする件
-
[解決済み】ChromeデベロッパーツールでHTTPリクエストを行う。
-
[解決済み】Google Chromeの拡張機能から現在のタブのURLを取得するにはどうすればいいですか?
-
[解決済み] Chrome web inspectorのネットワークタブで拡張機能のリソースを非表示にすることは可能ですか?
-
[解決済み] Google Chrome 開発者ツール - ブラックエミュレーションオプションのルーラーを無効にする
-
[解決済み] Chromeで"--allow-file-access-from-files "モードでhtmlを起動する方法は?
-
[解決済み] 新しいChromeでドロップダウンメニューを検査する