دليل سياسة أمان المحتوى

يقدّم هذا المستند اقتراحات حول كيفية ضبط سياسة أمان المحتوى (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:;