ব্যবহারকারীদের ক্ষতিকারক HTML বা JavaScript পরিবেশন করা থেকে রক্ষা করার জন্য, Apps Script iframes ব্যবহার করে HTML-পরিষেবা ওয়েব অ্যাপ বা Google Docs, Sheets এবং Forms-এর জন্য কাস্টম ব্যবহারকারী ইন্টারফেস তৈরি করে। (HTML পরিষেবা অন্যান্য পরিস্থিতিতে, যেমন ইমেলের মূল অংশ তৈরি করা, স্যান্ডবক্স ব্যবহার করে না।) স্যান্ডবক্স ক্লায়েন্ট-সাইড কোডের উপর সীমাবদ্ধতা আরোপ করে।
স্যান্ডবক্স মোড
IFRAME ছাড়া সকল স্যান্ডবক্স মোড এখন বন্ধ। পুরনো স্যান্ডবক্স মোড ব্যবহারকারী অ্যাপগুলি এখন স্বয়ংক্রিয়ভাবে নতুন 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 এর মাধ্যমে নয়।