ব্যবহারকারীদের ক্ষতিকারক HTML বা জাভাস্ক্রিপ্ট থেকে রক্ষা করার জন্য, HTML পরিষেবাটি Google Docs, Google Sheets এবং Forms-এর জন্য ওয়েব অ্যাপ বা কাস্টম ইউজার ইন্টারফেসগুলিকে স্যান্ডবক্স করার জন্য iframes ব্যবহার করে। HTML পরিষেবা অন্যান্য পরিস্থিতিতে, যেমন ইমেলের মূল অংশ তৈরি করার ক্ষেত্রে, স্যান্ডবক্স ব্যবহার করে না। স্যান্ডবক্স ক্লায়েন্ট-সাইড কোডের উপর সীমাবদ্ধতা আরোপ করে।
স্যান্ডবক্স মোড
IFRAME বাদে, সমস্ত স্যান্ডবক্স মোড সানসেট। যেসব অ্যাপ আগে NATIVE বা EMULATED মোড ব্যবহার করতো তারা এখন স্বয়ংক্রিয়ভাবে IFRAME মোড ব্যবহার করে। যদি আপনার স্ক্রিপ্টটি পুরোনো মোড দিয়ে তৈরি করা হয়ে থাকে, তাহলে এটি সঠিকভাবে কাজ করে কিনা তা নিশ্চিত করার জন্য মাইগ্রেশন নির্দেশাবলী অনুসরণ করুন।
এখন কল করার সময় setSandboxMode পদ্ধতির কোনও প্রভাব নেই।
IFRAME মোডে বিধিনিষেধ
IFRAME স্যান্ডবক্স মোডটি HTML5 এর iframe স্যান্ডবক্সিং বৈশিষ্ট্যের উপর ভিত্তি করে তৈরি করা হয়েছে, যা নিম্নলিখিত কীওয়ার্ডগুলি ব্যবহার করে:
-
allow-same-origin -
allow-forms -
allow-scripts -
allow-popups -
allow-downloads -
allow-modals -
allow-popups-to-escape-sandbox -
allow-top-navigation-by-user-activation- এই বৈশিষ্ট্যটি শুধুমাত্র স্বতন্ত্র স্ক্রিপ্ট প্রকল্পের জন্য সেট করা আছে।
allow-top-navigation কীওয়ার্ড, যা কন্টেন্টকে তার শীর্ষ-স্তরের ব্রাউজিং প্রেক্ষাপটে নেভিগেট করতে দেয়, তা সীমাবদ্ধ এবং স্যান্ডবক্সে একটি বৈশিষ্ট্য হিসাবে সেট করা হয়নি। যদি আপনার স্ক্রিপ্টটি পুনঃনির্দেশিত করার প্রয়োজন হয়, তাহলে ব্যবহারকারীর পদক্ষেপ নেওয়ার জন্য একটি লিঙ্ক বা একটি বোতাম যোগ করুন।
লিঙ্ক টার্গেট অ্যাট্রিবিউট সেট করুন
IFRAME মোডে আপনাকে link target অ্যাট্রিবিউটটি _top অথবা _blank এ সেট করতে হবে:
কোড.জেএস
function doGet() {
var template = HtmlService.createTemplateFromFile('top');
return template.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME);
}
top.html সম্পর্কে
<!DOCTYPE html>
<html>
<body>
<div>
<a href="http://google.com" target="_top">Click Me!</a>
</div>
</body>
</html>
আপনি এনক্লোজিং ওয়েব পেজের হেড সেকশনের <base> ট্যাগ ব্যবহার করেও এই অ্যাট্রিবিউটটিকে ওভাররাইড করতে পারেন:
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<div>
<a href="http://google.com">Click Me!</a>
</div>
</body>
</html>
সক্রিয় কন্টেন্টের জন্য HTTPS প্রয়োজন
"সক্রিয়" কন্টেন্ট যেমন স্ক্রিপ্ট, এক্সটার্নাল স্টাইলশিট এবং XmlHttpRequests HTTPS এর মাধ্যমে লোড করা উচিত, HTTP এর মাধ্যমে নয়।