javascript تعطيل نفس سياسة الأصل في Chrome




ajax google-chrome (20)

إذا كنت تستخدم Google Chrome على نظام التشغيل Linux ، فإن اتباع الأمر يعمل.

google-chrome  --disable-web-security

هل هناك أي طريقة لتعطيل سياسة النص الأصلي على متصفح Chrome من Google؟

هذا هو تماما من أجل التنمية ، وليس استخدام الإنتاج.


لمستخدمي ويندوز:

المشكلة مع الحل المقبولة هنا ، في رأيي هو أنه إذا كان Chrome مفتوحًا بالفعل وحاول تشغيله ، فلن يعمل.

ومع ذلك ، عند البحث عن هذا ، صادفت مشاركة على Super User ، هل من الممكن تشغيل Chrome مع وبدون أمان ويب في نفس الوقت؟ .

بشكل أساسي ، من خلال تشغيل الأمر التالي (أو إنشاء اختصار له وفتح Chrome من خلاله)

chrome.exe --user-data-dir="C:/Chrome dev session" --disable-web-security

يمكنك فتح مثيل جديد "غير آمن" من Chrome في الوقت نفسه الذي تبقي فيه مثيلات المتصفح "الآمنة" الأخرى مفتوحة وتعمل بشكل طبيعي.


يمكنك استخدام هذا المكون الإضافي chrome المسمى "السماح - Control - Allow-Origin: *" ... يجعلها بسيطة جدًا وتعمل جيدًا. تحقق من هنا: *


جرب هذا الأمر على جهاز Mac

open -n -a "Google Chrome" --args --user-data-dir=/tmp/temp_chrome_user_data_dir http://localhost:8100/ --disable-web-security 

يفتح مثيلًا آخر من Chrome مع أمان معطل ولا توجد مشكلة في CORS بعد الآن. كما أنك لست بحاجة إلى إغلاق حالات Chrome الأخرى بعد الآن. تغيير url localhost url الخاص بك.


لنظام التشغيل Windows ... قم بإنشاء اختصار Chrome على سطح المكتب الخاص بك.
انقر بزر الماوس الأيمن> خصائص> اختصار
تعديل مسار "الهدف":

"C:\Program Files\Google\Chrome\Application\chrome.exe" --args --disable-web-security

(قم بتغيير "C: .... \ chrome.exe" إلى حيث يوجد Chrome الخاص بك من أي وقت مضى).

et voilà :)


على جهاز كمبيوتر يعمل بنظام Windows ، استخدم إصدارًا قديمًا من Chrome وسيعمل الأمر مع جميع المستخدمين. لقد خفضت إصدار Chrome إلى 26 إصدارًا وعملت.


لم أكن أرغب في إعادة تشغيل Chrome وتعطيل أمان الويب (لأنني كنت أتصفح أثناء التطوير) وتعثرت في إضافة Chrome هذه.

سوق Chrome الإلكتروني Allow-Control-Allow-Origin: *
(https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi؟hl=en)

أساسا هو تبديل تبديل قليلا للتبديل وإيقاف الاختيار السماح بالوصول إلى الأصل والتحكم. يعمل بشكل مثالي بالنسبة لي على ما أفعله.

تحرير: حاولت استخدام فقط في اليوم الآخر لمشروع آخر وتوقف العمل. إلغاء تثبيت وإعادة تثبيت الملحق إصلاحه (لإعادة تعيين الإعدادات الافتراضية).


لمستخدمي ماك:

open -a "Google Chrome" --args --disable-web-security --user-data-dir

وقبل Chrome 48 ، يمكنك فقط استخدام:

open -a "Google Chrome" --args --disable-web-security

يبدو أن أيا من الحلول المذكورة أعلاه لا تعمل في الواقع. لم يعد خيار --disable-web-security مدعومًا في إصدارات Chrome الحديثة.

Allow-Control-Allow-Origin: * - chrome extension حل المشكلة جزئيًا. يعمل فقط إذا كان طلبك يستخدم طريقة GET وليس هناك رأس HTTP مخصص. بخلاف ذلك ، سيرسل Chrome طلب HTTP OPTIONS كطلب ما قبل الطيران. إذا كان الخادم لا يدعم CORS ، فستستجيب مع رمز حالة HTTP 404. لا يمكن للمكون الإضافي تعديل رمز حالة استجابة HTTP. لذلك سيرفض Chrome هذا الطلب. ليست هناك طريقة لمكوّن chrome لتعديل رمز حالة استجابة HTTP استنادًا إلى واجهة برمجة التطبيقات لإضافة Chrome الحالية. ولا يمكنك القيام بعملية إعادة توجيه بالإضافة إلى طلب XHR.

لست متأكدًا من سبب جعل Chrome حياة المطورين صعبة للغاية. يمنع جميع الطرق الممكنة لتعطيل فحص أمان XSS حتى لاستخدام التطوير وهو غير ضروري تمامًا.

بعد أيام من النضال والبحث ، حل واحد يعمل مثاليا بالنسبة لي: لاستخدام corsproxy . لديك خياران هنا: 1. استخدم corsproxy.com 2. قم بتثبيت corsproxy في المربع المحلي: npm install -g corsproxy


بعد الإجابة على Ola Karlsson ، فإن أفضل طريقة هي فتح 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

هذا واحد لكروم الكناري . Canary_CORS.bat

start "" "c:\Users\%USERNAME%\AppData\Local\Google\Chrome SxS\Application\chrome.exe" --user-data-dir="c:/_canary_dev" --disable-web-security

أغلق --disable-web-security (أو chromium) وأعد تشغيله باستخدام وسيطة --disable-web-security . لقد انتهيت للتو من اختبار ذلك والتحقق من أنه يمكنني الوصول إلى محتويات iframe مع src = "http://google.com" المضمنة في صفحة يتم عرضها من "localhost" (تم اختبارها ضمن chromium 5 / ubuntu). بالنسبة لي كان الأمر المحدد هو:

ملاحظة: قم بقتل جميع نسخ chrome قبل تشغيل الأمر

chromium-browser --disable-web-security --user-data-dir

سيحذرك المتصفح من "أنك تستخدم سطر أوامر غير معتمد" عند فتحه لأول مرة ، والذي يمكنك تجاهله.

من مصدر chromium:

// 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

لمستخدم MAC فقط

open -n -a /Applications/Google\ Chrome.app --args --user-data-dir="/tmp/someFolderName" --disable-web-security

لنظام التشغيل Windows :

  1. افتح قائمة البداية
  2. اكتب windows + R أو افتح "تشغيل"
  3. تنفيذ الأمر التالي:

    chrome.exe --user-data-dir="C://Chrome dev session" --disable-web-security
    

لنظام Mac :

  1. الذهاب إلى المحطة
  2. تنفيذ الأمر التالي:

    open /Applications/Google\ Chrome.app --args --user-data-dir="/var/tmp/Chrome dev session" --disable-web-security
    

يجب أن يفتح أمان الويب الجديد متصفح Chrome مع الرسالة التالية:


على نظام التشغيل Windows 10 ، سوف يعمل التالي.

<<path>>\chrome.exe --allow-file-access-from-files --allow-file-access --allow-cross-origin-auth-prompt

نعم. بالنسبة لـ OSX ، افتح Terminal وقم بتشغيل:

$ open -a Google\ Chrome --args --disable-web-security --user-data-dir

--user-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+ ، ستظهر لك رسالة خطأ تقول:

أنت تستخدم علامة سطر أوامر غير مدعومة: - أمن على شبكة الإنترنت. الاستقرار والأمن سيعاني.

ومع ذلك ، يمكنك تجاهل هذه الرسالة أثناء التطوير.



أستخدم هذا في بعض الأحيان ، لنشر موقع واجهة مستخدم محلي مضيف إلى واجهة برمجة تطبيقات المضيف المحلي (على سبيل المثال ، React to an .NET API القديم). لقد قمت بإنشاء اختصار منفصل على سطح مكتب Windows 10 ، بحيث لا يتم استخدامه مطلقًا في التصفح العادي ، فقط من أجل التصحيح محليًا. فعلت ما يلي: -

  1. انقر بزر الماوس الأيمن على سطح المكتب ، إضافة اختصار جديد
  2. أضف الهدف باسم "[PATH_TO_CHROME]\chrome.exe" --disable-web-security
  3. انقر فوق موافق.

ستتلقى تحذيرًا عند تحميل هذا المتصفح ، وهو غير آمن ، ما عليك سوى الاهتمام بما تستخدمه على المتصفح. أميل إلى إعادة تسمية هذا الاختصار الجديد على سطح المكتب ، شيء ما في رأس المال ، ونقله بعيدًا عن الرموز الأخرى ، لذلك لا يمكن الخلط بينه وبين Chrome العادي.

أتمنى أن يساعدك هذا!


chromium-browser --disable-web-security --user-data-dir=~/ChromeUserData/

بالنسبة لـ Selenium Webdriver ، يمكن أن يكون لديك selenium start Chrome بالوسائط المناسبة (أو "switches") في هذه الحالة.

 @driver = Selenium::WebDriver.for(:Chrome, { 
       :detach => false,
       :switches => ["--disable-web-security"]
    })

أجد أن أفضل طريقة لإجراء ذلك هي تكرار اختصار 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"







google-chrome