Чи є спосіб відключити політику того самого походження в браузері Chrome Chrome ?
peter.sh
сторінку, тому має бути досить законним.
--disable-web-security --user-data-dir
Чи є спосіб відключити політику того самого походження в браузері Chrome Chrome ?
peter.sh
сторінку, тому має бути досить законним.
--disable-web-security --user-data-dir
Відповіді:
Закрийте хром (або хром) і перезапустіть --disable-web-security
аргументом. Я щойно перевірив це і переконався, що я можу отримати доступ до вмісту iframe із src = "http://google.com", вбудованим у сторінку, розміщену з "localhost" (перевірена під хромом 5 / ubuntu). Для мене точна команда була:
Примітка: Убийте всі хромовані екземпляри перед запуском команди
chromium-browser --disable-web-security --user-data-dir="[some directory here]"
Веб-переглядач попередить вас, що "ви використовуєте непідтримуваний командний рядок" при першому відкритті, яке ви можете ігнорувати.
Від джерела хрому:
// Don't enforce the same-origin policy. (Used by people testing their sites.)
const wchar_t kDisableWebSecurity[] = L"disable-web-security";
Перед Chrome 48 ви могли просто використовувати:
chromium-browser --disable-web-security
open /Applications/Google\ Chrome.app --args --disable-web-security
--user-data-dir
.
Так. Для OSX відкрийте Terminal і запустіть:
$ open -a Google\ Chrome --args --disable-web-security --user-data-dir
- користувач-data-dir, необхідний для Chrome 49+ на OSX
Для запуску Linux:
$ google-chrome --disable-web-security
Також якщо ви намагаєтеся отримати доступ до локальних файлів для цілей розробника, таких як AJAX або JSON, ви можете також використовувати цей прапор.
-–allow-file-access-from-files
Для Windows перейдіть до командного рядка та перейдіть у папку, де є Chrome.exe та введіть
chrome.exe --disable-web-security
Це повинно вимкнути ту саму політику походження і дозволяти вам отримати доступ до локальних файлів.
Оновлення: для Chrome 22+ вам з’явиться повідомлення про помилку:
Ви використовуєте непідтримуваний прапор командного рядка: --disable-web-security. Стабільність та безпека постраждають.
Однак ви можете просто ігнорувати це повідомлення під час розробки.
--disable-web-security
це не працює, якщо ви також прямо не дасте --user-data-dir
. тобто OSX /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --disable-web-security --user-data-dir=~/ChromeUserData/
.
open -n
. Просто запустіть open -n -a Google\ Chrome --args --disable-web-security --user-data-dir=/tmp/chrome
. Це відкриє другий екземпляр програми Chrome на вашому mac, і ви можете використовувати їх поруч.
Для користувачів Windows:
Проблема з прийнятим тут рішенням, на мою думку, полягає в тому, що якщо у вас уже відкритий Chrome і спробуєте запустити це, воно не вийде.
Однак, досліджуючи це, я натрапив на публікацію про Super User, чи можна одночасно запускати Chrome із веб-безпекою та без неї? .
В основному, запустивши таку команду (або створивши ярлик із нею та відкривши Chrome через неї)
chrome.exe --user-data-dir="C:/Chrome dev session" --disable-web-security
ви можете відкрити новий "незахищений" екземпляр Chrome одночасно, коли ви зберігатимете інші "захищені" екземпляри веб-переглядача відкритими та працюють як звичайно.
Важливо : видаляйте / очищайте C:/Chrome dev session
папку кожного разу, коли ви відкриваєте вікно, оскільки другий раз --disable-web-security
не працює. Таким чином, ви не можете зберегти свої зміни, а потім відкрити їх знову, як другий незахищений примірник Chrome із --disable-web-security
.
"C:\..\chrome.exe" --disable-web-security --user-agent="Android" --user-data-dir="C:/temp-chrome-eng" --app="file:///C:/apps/index.html"
open -a Google\ Chrome --args --disable-web-security -–allow-file-access-from-files --user-data-dir="/Users/myuser/temp/chromeData"
, це лише зробило фокус існуючого хромованого вікна, нічого іншого?
open -n -a /Applications/Google\ Chrome.app --args --user-data-dir="/tmp/chrome_dev_session" --disable-web-security
(Вам може знадобитися зробити папку temp спочатку)
Для Windows :
Виконайте таку команду:
chrome.exe --user-data-dir="C://Chrome dev session" --disable-web-security
Для Mac :
Виконайте таку команду:
open /Applications/Google\ Chrome.app --args --user-data-dir="/var/tmp/Chrome dev session" --disable-web-security
Новий браузер із відключеною веб-безпекою Chrome має відкритися із таким повідомленням:
Run
.
Для користувачів Windows із версіями Chrome 60.0.3112.78 (день тестування та роботи рішення) та принаймні до сьогодні 19.01.2019 (вер. 71.0.3578.98) . Вам не потрібно закривати жоден хромований екземпляр.
НЕ ПОВЕРНУЙТЕСЯ НЕ ВИКОРИСТОВУВАТИ ЦЕ ПРАВИЛЬНУ ІНСТАНЦІЮ БРУСЕРА ДЛЯ БРОЗУВАННЯ, ВАС МОЖЕТЕ ВІДКРИТИ З НЕЮ!
EDIT 3: Здається, що розширення більше не існує ... Зазвичай, щоб обійти CORS в ці дні, я створив іншу версію Chrome з окремим каталогом або використовую Firefox з https://addons.mozilla.org/en-US/ firefox / addon / cors-всюди / замість цього.
EDIT 2: Я більше не можу змусити це працювати послідовно.
EDIT: Я нещодавно спробував використати інший проект, і він перестав працювати. Видалення та повторна установка розширення виправили його (для скидання значень за замовчуванням).
Оригінальний відповідь:
Я не хотів перезавантажувати Chrome і відключати свою безпеку в Інтернеті (тому що я переглядав під час розробки) і натрапив на це розширення Chrome.
По суті, це невеликий перемикач для вмикання та вимикання прапорець "Дозволити-доступ-вихід-контроль". Мені ідеально підходить те, що я роблю.
--disable-web-security
В цьому випадку дотримуйтесь перемикача.
--allow-file-access-from-files
замість того, щоб вимкнути всю безпеку в Інтернеті.
Здається, жодне з перерахованих вище рішень насправді не працює. У останніх хромованих версіях безпека веб-безпеки більше не підтримується.
Allow-Control-Allow-Origin: * - хромоване розширення частково вирішило проблему. Він працює лише у тому випадку, якщо у вашому запиті використовується метод GET і немає спеціального заголовка HTTP. В іншому випадку chrome надсилає OPTIONS HTTP-запит як попередній запит. Якщо сервер не підтримує CORS, він відповість 404 кодом статусу HTTP. Плагін не може змінювати код статусу відповіді HTTP. Тож хром відхилить цей запит. Немає можливості для хромованого плагіна змінювати код відповіді HTTP на основі поточного API розширення хрому. І ви не можете зробити переадресацію також для запиту, ініційованого XHR.
Не впевнений, чому Chrome ускладнює життя розробників. Він блокує всі можливі способи відключення перевірки безпеки XSS навіть для використання в розробці, що зовсім непотрібно.
Після денної боротьби та досліджень для мене ідеально працює одне рішення: використовувати корспрокси . Тут у вас є два варіанти: 1. використовуйте [ https://cors-anywhere.herokuapp.com/] 2. встановіть corsproxy в локальне поле: npm install -g corsproxy
[Оновлено 23 червня 2018 р.] Нещодавно я розробляю SPA-додаток, якому потрібно знову використовувати corsproxy. Але, здається, жоден із корспроксі на Github не може відповідати моїй вимозі.
Тому я вирішу розробити власну версію corsproxy з nodejs. Насправді це дуже просто. Я опублікував це як суть на github. Ось історія вихідного коду: https://gist.github.com/jianwu/8e76eaec95d9b1300c59596fbfc21b10
Для запуску сервера CORSProxy (http-порт 8080): вузол static_server.js 8080
для доступу до проксі: http: // хост: 8080 / http: //www.somesite.com
Для Windows ... створіть ярлик Chrome на робочому столі.
Клацніть правою кнопкою миші> властивості> ярлик
редагування контуру "цільового":
"C:\Program Files\Google\Chrome\Application\chrome.exe" --args --disable-web-security
(Змініть "C: .... \ chrome.exe" на те, де колись знаходиться ваш хром).
et voilà :)
Спробуйте цю команду на терміналі Mac-
open -n -a "Google Chrome" --args --user-data-dir=/tmp/temp_chrome_user_data_dir http://localhost:8100/ --disable-web-security
Це відкриває ще один примірник хрому з вимкненою безпекою, і вже немає проблеми CORS. Крім того, вам більше не потрібно закривати інші хромовані екземпляри. Змініть URL-адресу localhost на свою.
Я вважаю, що найкращий спосіб зробити це - копіювати ярлик Chrome або Chrome Canary на робочому столі Windows. Перейменуйте цей ярлик на "NO CORS", а потім відредагуйте властивості цього ярлика.
в цільовому додати --disable-web-security --user-data-dir="D:/Chrome"
до кінця цільового шляху.
ваша мета повинна виглядати приблизно так:
Оновлення: нові прапори додано.
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir="D:/Chrome"
використовуючи останню останню хромовану версію (83.0.4103.61 (Офіційна збірка) (64-розрядна)), єдиним способом змусити її працювати в моєму тесті було запустити хром за допомогою наведених нижче прапорів (змінити D: \ temp на свій смак) . Це рішення почне хромувати як пісочницю для тестів, і це не вплине на основний профіль хрому:
--disable-site-isolation-trial --disable-web-security --user-data-dir = "D: \ temp"
у Windows натисніть кнопку "Пуск", потім скопіюйте вставте нижче:
chrome.exe --disable-site-isolation-trials --disable-web-security --user-data-dir="D:\temp"
chrome.exe --disable-site-isolation-trials --disable-web-security --user-data-dir="D:\temp"
у run
вікні на Windows 10. Дякую.
Ви можете використовувати цей хромований плагін під назвою "Allow-Control-Allow-Origin: *" ... Це робить його мертвим простим і працює дуже добре. перевірте це тут: *
Для Selenium Webdriver ви можете мати в цьому випадку селенний запуск Chrome з відповідними аргументами (або "перемикачами").
@driver = Selenium::WebDriver.for(:Chrome, {
:detach => false,
:switches => ["--disable-web-security"]
})
Цей плагін Chrome працює для мене: Allow-Control-Allow-Origin: * - Веб-магазин Chrome
Не робіть цього! Ви відкриваєте свої рахунки для атак . Після цього будь-який сторонній сайт може почати надсилати запити на інші веб-сайти, сайти, на яких ви ввійшли.
Замість цього запустіть локальний сервер. Це так само просто, як відкрити оболонку / термінал / командний рядок та набрати текст
cd path/to/files
python -m SimpleHTTPServer
Потім вкажіть ваш браузер на
http://localhost:8000
Якщо ви вважаєте, що це занадто повільно, розгляньте це рішення
Люди, які беруть участь у відповіді на цю відповідь, повинні перейти сюди і спростувати цю відповідь, щоб бути послідовною. Не маю уявлення, чому моя відповідь так заперечується, і та сама відповідь тут - це відповідь вгорі.
Ви будете відкривати себе для атак. Кожен сторонній скрипт, який ви додаєте на свій сайт віддалено або локально, як через npm, тепер може завантажувати ваші дані або викрадати ваші облікові дані. Ви робите щось, чого не потрібно робити. Запропоноване рішення не є складним, займає 30 секунд, не залишає вас відкритою атакою. Чому ви вирішили зробити себе вразливим, коли краще зробити так просто?
Розповідати людям про відключення безпеки - це як сказати друзям залишати вхідні двері незамкненими та / або ключем під дверною ковдрою. Зрозуміло, що шанси можуть бути низькими, але якщо вони все-таки заблукають, без підтвердження примусового в'їзду у них, можливо, буде важко збирати страховку. Аналогічно, якщо ви відключите безпеку, ви робите саме те, що вимкніть безпеку . Це безвідповідально робити це, коли ви можете вирішити проблему так просто, не вимикаючи безпеку. Я буду здивований, якби вас не могли звільнити в деяких компаніях за відключення безпеки.
Ви можете просто використовувати це хромоване розширення Allow-Control-Allow-Origin
просто натисніть піктограму розширення, щоб увімкнути або вимкнути спільний доступ між ресурсами так, як вам потрібно
ТОЛЬКО ДЛЯ ВИКОРИСТАННЯ МАК
open -n -a /Applications/Google\ Chrome.app --args --user-data-dir="/tmp/someFolderName" --disable-web-security
У Windows 10 працює наступне.
<<path>>\chrome.exe --allow-file-access-from-files --allow-file-access --allow-cross-origin-auth-prompt
Після відповіді Оли Карлссон, найкращим способом було б відкрити небезпечний Chrome в іншому сеансі. Таким чином, вам не потрібно буде турбуватися про закриття всіх відкритих на сьогодні вкладок, а також можете продовжувати безпечно переглядати веб-сторінки за допомогою оригінального сеансу Chrome.
Ці пакетні файли повинні просто працювати для вас у Windows.
Помістіть його у файл Chrome_CORS.bat для зручного використання
start "" "c:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --user-data-dir="c:/_chrome_dev" --disable-web-security
Цей для Chrome Canary . Canary_CORS.bat
start "" "c:\Users\%USERNAME%\AppData\Local\Google\Chrome SxS\Application\chrome.exe" --user-data-dir="c:/_canary_dev" --disable-web-security
У Linux-Ubuntu для одночасного запуску звичайного сеансу та небезпечного сеансу виконайте таку команду:
google-chrome --user-data-dir=/tmp --disable-web-security
для користувачів Mac:
open -a "Google Chrome" --args --disable-web-security --user-data-dir
а перед Chrome 48 ви можете просто використовувати:
open -a "Google Chrome" --args --disable-web-security
Існує розширення Chrome під назвою CORS Toggle.
Клацніть тут, щоб отримати доступ до нього та додати його до Chrome .
Додавши його, переключіть його на положення включеного, щоб дозволити міждоменні запити.
Для Windows:
(з використанням Windows 8.1, хром 44.0 )
По-перше, закрийте Google Chrome.
Потім відкрийте командний рядок і перейдіть до папки, де знаходиться "chrome.exe".
( for me: 'chrome.exe' is here "C:\Program Files (x86)\Google\Chrome\Application".
Тому я набираю
cd C:\Program Files (x86)\Google\Chrome\Application
:)
тепер введіть: chrome.exe --disable-web-security
відкриється нове вікно з хрому.
Використовується команда нижче в Ubuntu для запуску хромування (відключення тієї ж політики походження та відкритого хрому в окремому режимі):
nohup google-chrome --disable-web-security --user-data-dir='/tmp' &
У Windows:
1) Створіть новий ярлик:
2) Вставте наступний шлях:
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" "C:\Program Files\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir="c:\temp\chrome"
3) На наступній сторінці сторінки:
Unsafe Chrome.exe
Тепер у вас на робочому столі є небезпечний хром, який можна використовувати для налагодження програм CORS. Сподіваюся, ця графічна відповідь допомагає деяким людям!
Спробуйте перейти на цю сторінку та відключити політику безпеки домену для домену вашого веб-сайту.
chrome://net-internals/#hsts
Input a domain name to delete its dynamic domain security policies (HSTS and Expect-CT). (You cannot delete preloaded entries.):
.