এই ডকুমেন্টটিতে ম্যাপস জাভাস্ক্রিপ্ট এপিআই-এর জন্য ওয়েবসাইটের কন্টেন্ট সিকিউরিটি পলিসি (সিএসপি) কীভাবে কনফিগার করতে হবে, সে বিষয়ে সুপারিশ প্রদান করা হয়েছে। যেহেতু ব্যবহারকারীরা বিভিন্ন ধরনের ও সংস্করণের ব্রাউজার ব্যবহার করেন, তাই ডেভেলপারদের এই উদাহরণটিকে একটি রেফারেন্স হিসেবে ব্যবহার করতে এবং সিএসপি-র আর কোনো লঙ্ঘন না ঘটা পর্যন্ত এটিকে সূক্ষ্মভাবে সমন্বয় করতে উৎসাহিত করা হচ্ছে।
বিষয়বস্তু নিরাপত্তা নীতি সম্পর্কে আরও জানুন ।
কঠোর CSP
নিরাপত্তা আক্রমণের সম্ভাবনা কমাতে আমরা অ্যালাওলিস্ট সিএসপি-র পরিবর্তে স্ট্রিক্ট সিএসপি ব্যবহারের পরামর্শ দিই। ম্যাপস জাভাস্ক্রিপ্ট এপিআই ননস-ভিত্তিক স্ট্রিক্ট সিএসপি ব্যবহার সমর্থন করে। ওয়েবসাইটগুলোকে অবশ্যই script এবং style উভয় এলিমেন্টেই একটি ননস ভ্যালু যোগ করতে হবে। অভ্যন্তরীণভাবে, ম্যাপস জাভাস্ক্রিপ্ট এপিআই এই ধরনের প্রথম এলিমেন্টটি খুঁজে বের করবে এবং এপিআই স্ক্রিপ্ট দ্বারা সন্নিবেশিত স্টাইল বা স্ক্রিপ্ট এলিমেন্টগুলোতে যথাক্রমে এর ননস ভ্যালুটি প্রয়োগ করবে।
উদাহরণ
নিম্নলিখিত উদাহরণে একটি নমুনা 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:;
নমুনা এইচটিএমএল পৃষ্ঠা
<!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>
অ্যালাওলিস্ট সিএসপি
আপনি যদি allowlist CSP সেট আপ করে থাকেন, তাহলে অনুগ্রহ করে Google Maps Domains-এর তালিকাটি দেখুন। হালনাগাদ থাকার জন্য আমরা এই ডকুমেন্ট এবং Maps JavaScript API রিলিজ নোটগুলো দেখার পরামর্শ দিই, এবং প্রয়োজনে যেকোনো নতুন সার্ভিস ডোমেইনকে allowlist-এ অন্তর্ভুক্ত করুন।
যেসব ওয়েবসাইট পুরোনো গুগল এপিআই ডোমেইন (যেমন 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:;