HTML 서비스: 제한사항

악성 HTML 또는 JavaScript가 사용자에게 노출되는 것을 방지하기 위해 Apps Script는 iframe을 사용하여 HTML 서비스 웹 앱 또는 맞춤 사용자를 샌드박스 처리 Google Docs, Sheets, Forms의 인터페이스입니다. (HTML 서비스는 샌드박스를 실행할 수 없습니다.) 샌드박스 클라이언트 측 코드에 제한을 둡니다.

샌드박스 모드

이제 IFRAME을 제외한 모든 샌드박스 모드가 지원 종료됩니다. 이전 샌드박스를 사용하는 앱 모드는 이제 자동으로 최신 IFRAME 모드를 사용합니다. 이러한 작업을 수행하는 이전 모드 (NATIVEEMULATED)를 사용하여 개발된 경우 이전 안내를 따라 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>

헤드 내의 <base> 태그를 사용하여 이 속성을 재정의할 수도 있습니다. 섹션에 다음과 같이 표시됩니다.

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
   <div>
     <a href="http://google.com">Click Me!</a>
   </div>
 </body>
</html>

활성 콘텐츠에 HTTPS 필요

'활성' 콘텐츠 스크립트, 외부 스타일시트, XmlHttpRequests와 같은 API는 HTTP가 아닌 HTTPS