يقدّم هذا المستند اقتراحات حول كيفية ضبط سياسة أمان المحتوى (CSP) للموقع الإلكتروني لـ Maps JavaScript API. بما أنّه يستخدم المستخدمون النهائيون مجموعة كبيرة من أنواع المتصفّحات وإصداراتها، ننصح المطوّرين باستخدام هذا المثال كمرجع، وإجراء التعديلات اللازمة إلى أن يتمّ تجنُّب حدوث أيّ انتهاكات أخرى لسياسة CSP.
مزيد من المعلومات حول سياسة أمان المحتوى
سياسة أمان المحتوى (CSP) الصارمة
ننصح باستخدام CSP الصارم
بدلاً من CSP القائمة المسموح بها للحدّ من احتمالية حدوث هجمات أمنية.
تتيح واجهة برمجة تطبيقات JavaScript لـ "خرائط Google" استخدام ميزة "البروتوكول الآمن للمحتوى" الصارم المستنِد إلى مفتاح عشوائي.
يجب أن تملأ المواقع الإلكترونية عنصرَي script
وstyle
بقيمة nonce.
داخليًا، ستعثر واجهة برمجة التطبيقات JavaScript لـ "خرائط Google" على أول عنصر من هذا النوع،
وستطبّق قيمة nonce على عناصر الأنماط أو النصوص البرمجية التي أدرجها رمز واجهة برمجة التطبيقات
على التوالي.
مثال
يعرض المثال التالي نموذجًا لسياسة الخدمة (CSP) مع صفحة HTML التي يتم فيها تضمين السياسة:
نموذج سياسة أمان المحتوى
script-src 'nonce-{script value}' 'strict-dynamic' https: 'unsafe-eval' blob:;
img-src 'self' https://*.googleapis.com https://*.gstatic.com *.google.com *.googleusercontent.com data:;
frame-src *.google.com;
connect-src 'self' https://*.googleapis.com *.google.com https://*.gstatic.com data: blob:;
font-src https://fonts.gstatic.com;
style-src 'nonce-{style value}' https://fonts.googleapis.com;
worker-src blob:;
نموذج لصفحة HTML
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css" nonce="{style value}">
<style nonce="{style value}">...</style>
...
</head>
<body>
<div id="map"></div>
<script src="https://maps.googleapis.com/maps/api/js?key=&callback=initMap" async nonce="{script value}"></script>
<script nonce="{script value}"> function initMap() { ... } </script>
</body>
</html>
موفِّر خدمة قائمة المسموح به
إذا كنت قد أعددت القائمة المسموح بها لخدمة "إدارة الخدمات في المقاولين الخارجيين"، يُرجى الرجوع إلى قائمة نطاقات "خرائط Google". ننصحك بالاطّلاع على هذا المستند وملاحظات الإصدار لواجهة برمجة التطبيقات JavaScript في "خرائط Google" للبقاء على اطّلاع دائم، وإدراج أي نطاق خدمة جديد في القائمة المسموح بها إذا لزم الأمر.
يجب أن تتضمّن أيضًا المواقع الإلكترونية التي تحمّل واجهة برمجة التطبيقات JavaScript لخرائط Google من نطاق قديم
لـ Google APIs (مثل maps.google.com
) أو نطاق خاص بمنطقة معيّنة
(مثل maps.google.fr
) أسماء النطاقات هذه في إعداد
CSP script-src
، كما هو موضّح في المثال التالي:
script-src 'self' 'unsafe-inline' 'unsafe-eval' https://*.googleapis.com https://*.gstatic.com *.google.com https://*.ggpht.com *.googleusercontent.com blob:;
img-src 'self' https://*.googleapis.com https://*.gstatic.com *.google.com *.googleusercontent.com data:;
frame-src *.google.com;
connect-src 'self' https://*.googleapis.com *.google.com https://*.gstatic.com data: blob:;
font-src https://fonts.gstatic.com;
style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;
worker-src blob:;