في هذا الدليل التعليمي حول الرموز البرمجية، اطّلِع على كيفية عمل سياسة المصادر المشترَكة عند جلب الموارد.
الإعداد: جلب الصفحة من المصدر نفسه
يتم استضافة العرض التقديمي على https://same-origin-policy-fetch.glitch.me
.
تستخدم صفحة الويب البسيطة هذه fetch
لتحميل المورد من https://same-origin-policy-fetch.glitch.me/fetch.html
. بما أنّ index.html
وfetch.html
يتشاركان المصدر نفسه، من المفترض أن يظهر لك 200
في المعاينة المباشرة.
1. جلب الصفحة من مصدر مختلف
جرِّب تغيير عنوان URL الخاص بالاسترداد إلى https://www.google.com
.
ما الذي يظهر لك في المعاينة المباشرة؟
من المفترض أنّ المتصفّح قد حظر طلب الجلب لأنّك طلبت موردًا من مصدر مختلف. وهذا يعني أنّه لا يمكن للمهاجم قراءة موارد المستخدِمة من مصادر مختلفة حتى إذا تمكّن من التحكّم في متصفّح أحد المستخدِمين.
2. جلب مورد من مصدر خارجي
جرِّب تغيير عنوان URL الخاص بالاسترداد إلى https://api.thecatapi.com/v1/images/search
.
ما الذي يظهر لك في المعاينة المباشرة؟
عنوان URL الخاص بالاسترداد هو مصدر مختلف، ولكن من المفترض أن يظهر لك رمز الحالة 200. لماذا؟ تطلب تطبيقات الويب الحديثة غالبًا موارد من مصادر مختلفة لتحميل نصوص برمجية تابعة لجهات خارجية أو طلب بيانات من نقطة نهاية واجهة برمجة التطبيقات. لاستيعاب حالات الاستخدام هذه، تتوفر آلية تُعرف باسم مشاركة الموارد المتعدّدة المصادر (CORS) لإعلام browser بأنّه يُسمح بتحميل مورد من مصدر مختلف. اطّلِع على مشاركة المراجع مع نطاقات خارجية بأمان للحصول على مزيد من المعلومات عن بروتوكول CORS.