Lightning Web Component 安全性相关知识

JavaScript 的严格模式

Lightning Web Component 是遵循了 JavaScript 的严格模式,所以在开发时有一些强制规定,比如所有变量必须用 var、let、const 等关键字声明等。

关于严格模式的详细信息,可以参考官方文档

DOM 访问限制

在访问 DOM 时,不能使用 window 或 document 这些全局变量,而要使用 this.template 变量。比如使用 this.template.querySelector() 代替 document.querySelector()。

Locker Service 提供了一组安全性更高的封装类:

  • SecureWindow:封装了 window 全局变量
  • SecureDocument:封装了 document 全局变量
  • SecureObject:代表了被 Locker Service 封装的对象,其细节是无法访问的
  • SecureLightningElement:封装了 LightningElement 类,也就是所有 Lightning Web Component 继承的类。我们无法直接继承 SecureLightningElement 类,但是在运行时它会取代 LightningElement
  • SecureTemplate:封装了 template 对象

其他限制

第三方的类库无法直接使用,必须上传为静态资源(static resource)。

外部的图片、字体、文件的链接必须使用 https 而非 http。

以下全局变量无法使用:

  • $A
  • Aura
  • Sfdc
  • sforce
原文地址:https://www.cnblogs.com/chengcheng0148/p/lwc_security_tips.html