راهنمای خط مشی امنیت محتوا

این سند توصیه‌هایی در مورد نحوه پیکربندی سیاست امنیت محتوای وب‌سایت (CSP) برای API جاوا اسکریپت نقشه‌ها ارائه می‌دهد. از آنجایی که طیف گسترده‌ای از انواع و نسخه‌های مرورگر توسط کاربران نهایی استفاده می‌شود، به توسعه‌دهندگان توصیه می‌شود از این مثال به عنوان مرجع استفاده کنند و تا زمانی که دیگر نقض CSP رخ ندهد، آن را به دقت تنظیم کنند.

درباره سیاست امنیت محتوا بیشتر بدانید .

CSP سختگیرانه

ما توصیه می‌کنیم برای کاهش احتمال حملات امنیتی، از CSP سختگیرانه به جای CSP لیست مجاز استفاده کنید. API جاوا اسکریپت Maps از استفاده از CSP سختگیرانه مبتنی بر nonce پشتیبانی می‌کند. وب‌سایت‌ها باید عناصر script و style را با مقدار nonce پر کنند. در داخل، API جاوا اسکریپت Maps اولین عنصر از این نوع را پیدا می‌کند و مقدار nonce آن را به ترتیب به عناصر استایل یا اسکریپت وارد شده توسط اسکریپت API اعمال می‌کند.

مثال

مثال زیر یک نمونه 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 مربوط به لیست مجاز را تنظیم کرده‌اید، لطفاً به فهرست دامنه‌های نقشه‌های گوگل مراجعه کنید. توصیه می‌کنیم برای به‌روز ماندن، به این سند و یادداشت‌های انتشار API جاوا اسکریپت نقشه‌ها مراجعه کنید و در صورت نیاز، هر دامنه سرویس جدیدی را در لیست مجاز قرار دهید.

وب‌سایت‌هایی که API جاوااسکریپت Maps را از یک دامنه قدیمی 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:;