悪意のある HTML や JavaScript の配信からユーザーを保護するために、Apps Script は iframe を使用して HTML サービスのウェブアプリやカスタムユーザーをサンドボックス化 インターフェースを使用する(HTML サービスでは、 メール本文を生成する場合など、他の状況でサンドボックスを使用できます)。サンドボックス クライアントサイドのコードに制限が課せられます。
サンドボックス モード
IFRAME
を除くすべてのサンドボックス モードは廃止されました。古いサンドボックスを使用しているアプリ
モードでは、新しい IFRAME
モードが自動的に使用されるようになりました。スクリプトで
古いモード(NATIVE
と EMULATED
)を使用して開発された場合は、
移行手順に沿って、
IFRAME
モードで適切に機能します。
setSandboxMode
メソッドは呼び出されたときに効果がないようになりました。
iframe モードの制限
IFRAME
サンドボックス モードは、
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
モードでは、リンク ターゲット属性を次のいずれかに設定する必要があります
_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>
head 内で <base>
タグを使用して、この属性をオーバーライドすることもできます。
セクションに追加されます。
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<div>
<a href="http://google.com">Click Me!</a>
</div>
</body>
</html>
アクティブなコンテンツには HTTPS が必要です
[有効]コンテンツ 外部スタイルシート、XmlHttpRequests などの サポートしています。