HTML পরিষেবা: বিধিনিষেধ

ব্যবহারকারীদের দূষিত HTML বা JavaScript পরিবেশন করা থেকে রক্ষা করতে, Apps Script স্যান্ডবক্স HTML-পরিষেবা ওয়েব অ্যাপ বা Google ডক্স, পত্রক এবং ফর্মের জন্য কাস্টম ব্যবহারকারী ইন্টারফেসে iframes ব্যবহার করে। (HTML পরিষেবা অন্যান্য পরিস্থিতিতে একটি স্যান্ডবক্স ব্যবহার করে না, যেমন একটি ইমেলের বডি তৈরি করা।) স্যান্ডবক্স ক্লায়েন্ট-সাইড কোডের উপর সীমাবদ্ধতা আরোপ করে।

স্যান্ডবক্স মোড

IFRAME বাদে সমস্ত স্যান্ডবক্স মোড এখন সূর্যাস্ত। পুরানো স্যান্ডবক্স মোড ব্যবহার করা অ্যাপগুলি এখন স্বয়ংক্রিয়ভাবে নতুন IFRAME মোড ব্যবহার করে৷ আপনার যদি পুরানো মোডগুলি ব্যবহার করে তৈরি করা স্ক্রিপ্টগুলি থাকে ( NATIVE এবং EMULATED ), তাহলে আপনার উচিত মাইগ্রেশন নির্দেশাবলী অনুসরণ করা যাতে তারা IFRAME মোডের অধীনে সঠিকভাবে কাজ করে।

setSandboxMode পদ্ধতিতে এখন কল করার সময় কোন প্রভাব নেই।

IFRAME মোডে সীমাবদ্ধতা

IFRAME স্যান্ডবক্স মোড HTML5-এর iframe স্যান্ডবক্সিং বৈশিষ্ট্যের উপর ভিত্তি করে, নিম্নলিখিত কীওয়ার্ডগুলি ব্যবহার করে:

allow-top-navigation কীওয়ার্ড, যা বিষয়বস্তুকে তার শীর্ষ-স্তরের ব্রাউজিং প্রসঙ্গে নেভিগেট করার অনুমতি দেয়, সীমাবদ্ধ এবং স্যান্ডবক্সে একটি বৈশিষ্ট্য হিসাবে সেট করা হয় না। আপনি যদি আপনার স্ক্রিপ্ট পুনঃনির্দেশ করতে চান তবে ব্যবহারকারীর পরিবর্তে পদক্ষেপ নেওয়ার জন্য একটি লিঙ্ক বা একটি বোতাম যোগ করুন।

IFRAME মোডে আপনাকে লিঙ্ক টার্গেট অ্যাট্রিবিউট _top বা _blank এ সেট করতে হবে:

Code.js

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 নয়।