مرحباً
أود إجراء بعض الاختبارات على Discourse دون الحاجة بالضرورة إلى المرور عبر اسم النطاق العام المُعد له. على سبيل المثال، إذا تم تثبيت Discourse وتكوينه على https://uat.mysite.com، فيمكنني بالطبع فتح متصفحي وتصفح https://uat.mysite.com، مما يعني أن متصفحي سيخرج من شبكتي الداخلية إلى الإنترنت العام لحل اسم النطاق إلى عنوان IP العام الخاص به، وتحميل الصفحات عبر عنوان IP العام الخاص به.
لقد حاولت للتو تصفح Discourse عبر عنوان IP الداخلي للخادم (مثل 192.168.1.2 الموضح أدناه) وبشكل صحيح لا يتم تحميله بسبب سياسة أمان المحتوى (Content Security Policy). الأخطاء التي أحصل عليها هي من الشكل التالي.
Refused to load the script 'http://192.168.1.2:12000/assets/locales/en-a9c88e45eb548bd7c807aecfd37d218891e213b5c1fd254857e0f16c72d73996.js' because it violates the following Content Security Policy directive: "script-src http://uat.mysite.com/logs/ http://uat.mysite.com/sidekiq/ http://uat.mysite.com/mini-profiler-resources/ http://uat.mysite.com/assets/ http://uat.mysite.com/brotli_asset/ http://uat.mysite.com/extra-locales/ http://uat.mysite.com/highlight_js/ http://uat.mysite.com/javascripts/ http://uat.mysite.com/plugins/ http://uat.mysite.com/theme-javascripts/ http://uat.mysite.com/svg-sprite/ 'sha256-rwfDVOTzygQmkOwFNAeX564B66beHoel4+gRLgQUgHg='". Note that 'script-src-elem' was not explicitly set, so 'script-src' is used as a fallback.
---------------------------------------------\
| |
------------\
uat.mysite.com resolves to 98.1.2.3 --> | Public IP | Server running Discourse. |
| 96.1.2.3. |
------------ |
| |
| ---------------- |
| | Private IP | |
| | 192.168.1.2 | |
---------------------------------------------\
^
|
192.168.1.2 ------------------------------------------------------------
السبب الذي يجعلني أرغب في الوصول إلى Discourse عبر عنوان IP الداخلي للخادم هو أنني أريد إجراء الاختبارات. على سبيل المثال، إذا كنت أرغب في إجراء اختبار تحميل، فلا يلزم بالضرورة تحميل الشبكة التي تخدم الإنترنت. أو إذا كنت أرغب في تثبيت نسخة اختبار على الكمبيوتر المحمول الخاص بي أو خادم بناء دون الحاجة بالضرورة إلى إعداد DNS.
أعتقد أنه يمكنني دائمًا تجاوز هذا عن طريق تعيين إدخال مخصص في /etc/hosts، ولكن هل هناك طريقة لتعطيل CSP أو تعيينها للوثوق بمصادر أخرى للسماح بالاختبار؟