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

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

يقدّم هذا المستند اقتراحات حول كيفية ضبط سياسة أمان المحتوى (CSP) للموقع الإلكتروني في واجهة برمجة تطبيقات JavaScript لـ "خرائط Google". نظرًا لأنّ مجموعة كبيرة من أنواع المتصفّحات وإصداراتها يستخدمها المستخدمون النهائيون، ننصح مطوّري البرامج باستخدام هذا المثال كمرجع، وتحسين المحتوى إلى حين عدم حدوث مخالفات أخرى لسياسة أمان المحتوى (CSP).

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

سياسة أمان المحتوى (CSP) الصارمة

ننصحك باستخدام سياسة صارمة لسياسة أمان المحتوى (CSP) مع القائمة المسموح بها لسياسة أمان المحتوى (CSP) للحد من احتمالية حدوث هجمات أمنية. تدعم Maps JavaScript API استخدام سياسة CSP الصارمة غير المستندة إلى معايير جديدة. يجب أن تملأ المواقع الإلكترونية العناصر script وstyle بقيمة غير تابعة. داخليًا، ستعثر واجهة برمجة تطبيقات JavaScript للخرائط على أول عنصر من هذا القبيل، وستطبِّق قيمتها غير الفريدة على النمط أو عناصر النص البرمجي التي يتم إدراجها بواسطة نص برمجي لواجهة برمجة التطبيقات على التوالي.

مثال

يعرض المثال التالي نموذج 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>

مقدِّم خدمة الضبط (CSP) للقائمة المسموح بها

في حال إعداد CSP في القائمة المسموح بها، يُرجى الرجوع إلى قائمة نطاقات "خرائط Google". ننصحك بالرجوع إلى هذا المستند وملاحظات الإصدار الخاصة بواجهة برمجة تطبيقات JavaScript الخاصة بالبقاء على اطّلاع دائمًا، وتضمين أي نطاق خدمة جديد في القائمة المسموح بها إذا لزم الأمر.

يجب أيضًا أن تتضمن المواقع الإلكترونية التي تحمّل واجهة برمجة تطبيقات JavaScript للخرائط من نطاق قديم لواجهات برمجة تطبيقات Google (على سبيل المثال 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:;