HTML Hizmeti: Kısıtlamalar

Apps Komut Dosyası, kullanıcıları kötü amaçlı HTML veya JavaScript'e maruz kalmaktan korumak için HTML hizmeti web uygulamalarını veya Google Dokümanlar, E-Tablolar ve Formlar için özel kullanıcı arayüzlerini korumalı alana almak amacıyla iFrame'leri kullanır. (HTML hizmeti, e-postanın gövdesini oluşturma gibi diğer durumlarda korumalı alan kullanmaz.) Korumalı alan, istemci tarafı kodunda sınırlamalar uygular.

Korumalı Alan Modu

IFRAME hariç tüm korumalı alan modları kullanımdan kaldırıldı. Eski korumalı alan modlarını kullanan uygulamalar artık otomatik olarak yeni IFRAME modunu kullanıyor. Eski modlar (NATIVE ve EMULATED) kullanılarak geliştirilmiş komut dosyalarınız varsa IFRAME modunda düzgün şekilde çalıştıklarından emin olmak için taşıma talimatlarını uygulamanız gerekir.

setSandboxMode yöntemi artık çağrıldığında herhangi bir etki oluşturmaz.

IFRAME modundaki kısıtlamalar

IFRAME korumalı alan modu, aşağıdaki anahtar kelimeleri kullanarak HTML5'teki iframe korumalı alan özelliğini temel alır:

  • allow-same-origin
  • allow-forms
  • allow-scripts
  • allow-popups
  • allow-downloads
  • allow-modals
  • allow-popups-to-escape-sandbox
  • allow-top-navigation-by-user-activation: Bu özellik yalnızca bağımsız komut dosyası projeleri için ayarlanır.

İçeriğin üst düzey tarama bağlamında gezinmesine olanak tanıyan allow-top-navigation anahtar kelimesi kısıtlanmıştır ve korumalı alanda bir özellik olarak ayarlanmamıştır. Komut dosyanızı yönlendirmeniz gerekiyorsa kullanıcının işlem yapması için bir bağlantı veya düğme ekleyin.

IFRAME modunda, bağlantı hedefi özelliğini _top veya _blank olarak ayarlamanız gerekir:

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>

Bu özelliği, kapsayıcı web sayfasının head bölümündeki <base> etiketini kullanarak da geçersiz kılabilirsiniz:

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

Etkin içerik için HTTPS gereklidir

Komut dosyaları, harici stil sayfaları ve XmlHttpRequest'ler gibi "etkin" içerikler HTTP üzerinden değil, HTTPS üzerinden yüklenmelidir.