नुकसान पहुंचाने वाले एचटीएमएल या JavaScript का इस्तेमाल करने वाले उपयोगकर्ताओं को सुरक्षित रखने के लिए, Apps Script एचटीएमएल-सेवा वेब ऐप्लिकेशन या कस्टम उपयोगकर्ता को सैंडबॉक्स करने के लिए iframe का इस्तेमाल करता है Google Docs, Sheets, और Forms के लिए इंटरफ़ेस. (HTML सेवा सैंडबॉक्स का इस्तेमाल अन्य परिस्थितियों में किया जा सकता है, जैसे कि ईमेल के मुख्य हिस्से को जनरेट करना.) सैंडबॉक्स क्लाइंट-साइड कोड पर सीमाएं लागू करता है.
सैंडबॉक्स मोड
IFRAME
को छोड़कर, सभी सैंडबॉक्स मोड अब बंद हो गए हैं. पुराने सैंडबॉक्स का इस्तेमाल करने वाले ऐप्लिकेशन
मोड अब अपने-आप नए IFRAME
मोड का इस्तेमाल करते हैं. अगर आपके पास ऐसी स्क्रिप्ट हैं जो
इन्हें पुराने मोड (NATIVE
और EMULATED
) का इस्तेमाल करके डेवलप किया गया था, इसलिए आपको ऐसा करना चाहिए
माइग्रेशन निर्देशों का पालन करके यह पक्का करें कि
ये IFRAME
मोड में ठीक से काम करते हैं.
setSandboxMode
विधि को कॉल करने पर उसका कोई प्रभाव नहीं पड़ता.
iframe मोड में पाबंदियां
IFRAME
का सैंडबॉक्स मोड
iframe सैंडबॉक्सिंग की सुविधा
HTML5 में, इन कीवर्ड का इस्तेमाल करके:
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
मोड में आपको लिंक टारगेट एट्रिब्यूट को, इनमें से किसी एक पर सेट करना होगा
_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>
ऐक्टिव कॉन्टेंट के लिए एचटीटीपीएस ज़रूरी है
"चालू है" कॉन्टेंट जैसे कि स्क्रिप्ट, बाहरी स्टाइलशीट, और XmlHttpRequests को इस पर लोड किया जाना चाहिए एचटीटीपीएस, एचटीटीपी नहीं है.