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

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

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

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

ننصحك باستخدام سياسة سياسة أمان المحتوى الصارمة ضمن قائمة سياسة أمان المحتوى المسموح بها للحدّ من احتمال حدوث هجمات أمنية. تتيح واجهة برمجة تطبيقات JavaScript للخرائط استخدام سياسة 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 API للاطّلاع على أحدث المعلومات، وتضمين أي نطاق خدمة جديد في القائمة المسموح بها إذا لزم الأمر.

إنّ المواقع الإلكترونية التي تحمِّل Maps JavaScript API من نطاق قديم في 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:;