HTML 서비스: 제한사항

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

Apps Script는 사용자에게 악성 HTML 또는 자바스크립트가 제공되는 것을 방지하기 위해 iframe을 사용하여 Google Docs, Sheets, Forms용 HTML 서비스 웹 앱 또는 맞춤 사용자 인터페이스를 샌드박스로 처리합니다. (HTML 서비스는 이메일 본문을 생성하는 것과 같은 다른 상황에서는 샌드박스를 사용하지 않습니다.) 샌드박스는 클라이언트 측 코드에 제한사항을 적용합니다.

샌드박스 모드

이제 IFRAME를 제외한 모든 샌드박스 모드가 종료됩니다. 이전 샌드박스 모드를 사용하는 앱은 이제 최신 IFRAME 모드를 자동으로 사용합니다. 이전 모드(NATIVEEMULATED)를 사용하여 개발된 스크립트가 있는 경우 이전 안내에 따라 IFRAME 모드에서 제대로 작동하도록 해야 합니다.

이제 setSandboxMode 메서드는 호출해도 효과가 없습니다.

IFRAME 모드의 제한사항

IFRAME 샌드박스 모드는 다음 키워드를 사용하여 HTML5의 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 필요

스크립트, 외부 스타일시트, XmlHttpRequest와 같은 "Active' 콘텐츠는 HTTP가 아닌 HTTPS를 통해 로드해야 합니다.

달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.

Last updated 2022-08-18 UTC.