لحماية المستخدمين من عرض محتوى HTML أو JavaScript ضار، تستخدم "برمجة تطبيقات Google" علامات iframe لإنشاء بيئة محاكاة لتطبيقات الويب التي تستخدم خدمة HTML أو واجهات مستخدم مخصّصة في "مستندات Google" و"جداول بيانات Google" و"نماذج Google". (لا تستخدم خدمة 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>
يجب استخدام بروتوكول HTTPS للمحتوى النشط
يجب تحميل المحتوى"النشط" مثل النصوص البرمجية وأوراق الأنماط الخارجية وطلبات XmlHttpRequest عبر بروتوكول HTTPS وليس HTTP.