Skip to main content

Introdução ao Lightning Web Security

Objetivos de aprendizagem

Após concluir esta unidade, você estará apto a:

  • Descrever o Lightning Web Security.
  • Listar os benefícios de usar o Lightning Web Security.

O que é o Lightning Web Security?

Quando administradores e desenvolvedores adicionam novos recursos e funcionalidades às suas organizações, a segurança da organização é uma prioridade máxima. Os componentes pré-criados (do Salesforce ou do AppExchange) e componentes personalizados podem introduzir riscos, permitindo que uma organização seja comprometida por um código perigoso. 

No entanto, a segurança não deve prejudicar o desempenho ou as restrições funcionais. Assim, o Salesforce criou o Lightning Web Security (LWS) para ajudar você a manter sua organização segura. O LWS confere maior funcionalidade por meio de novos casos de uso de componentes do Lightning. Porém, antes de saber mais sobre o LWS, vamos observar brevemente o Lightning Locker, seu antecessor.

Nota

Nota

Ao trabalhar neste módulo, você poderá notar uma diferença na forma como os Componentes Web do Lightning usam caixa alta ou baixa. Usamos maiúsculas em todas as palavras quando nos referimos ao modelo de programação dos Componentes Web do Lightning. Só usamos maiúsculas na primeira palavra quando nos referimos aos próprios componentes, como componentes Web do Lightning.

Lightning Locker

Se já estiver usando componentes do Lightning, você está familiarizado com o Lightning Locker. O Lightning Locker tem sido o padrão para manter seus componentes Web do Lightning e componentes do Aura seguros, isolando os namespaces de componentes do Lightning em seus próprios contêineres e reforçando as melhores práticas de codificação. Por exemplo, um componente chamado c-editor pertence ao namespace c e está isolado de componentes no namespace ltngmu

O Lightning Locker não vai sumir imediatamente. O LWS para componentes Web do Lightning (GA) e o LWS para Aura (beta) estão habilitados por padrão em organizações que não contêm componentes Web do Lightning personalizados ou componentes do Aura. Esta habilitação continua a implantação gradual da arquitetura do LWS anunciada na versão Spring '22. O Lightning Web Security é o futuro da segurança e desempenho dos componentes, portanto, quanto mais cedo você puder se mudar para o LWS, mais segura e mais rápida será sua organização.

Nota

Nota 

Este módulo aborda o Lightning Web Security. Se você quiser ler mais sobre o Lightning Locker, consulte o link na seção Recursos. 

A próxima geração—Lightning Web Security

O Lightning Web Security é a novidade para componentes do Lightning. Se você usa componentes do Lightning, saberá que suas páginas do Salesforce podem conter componentes de várias outras empresas. Além disso, seus componentes personalizados são combinados com componentes criados pelo Salesforce e em aplicativos no AppExchange que você desenvolve ou usa. 

Ter muitos componentes de diferentes fontes em seu ambiente, incluindo bibliotecas de terceiros carregadas de recursos estáticos, deixa aberta a porta para ameaças potenciais. O código mal-intencionado em um componente pode acessar objetos globais como janela, documento ou elemento, obter seus recursos ou dados e causar danos em toda a sua organização. 

Segurança por meio de sandboxing de JavaScript

A arquitetura no Lightning Web Security funciona em seu ambiente isolando cada componente em uma sandbox de JavaScript dedicada ao seu namespace. O código perigoso de um componente não pode acessar os recursos de outros componentes fora do seu namespace.

Casos de uso do Lightning Web Security

Embora tanto o Lightning Locker quanto o Lightning Web Security bloqueiem ou modifiquem o comportamento das APIs que não são seguras, o LWS oferece esses usos adicionais que melhoram o desempenho e a segurança.

Uso do componente Cross-Namespace
Os componentes Web do Lightning podem importar componentes ou módulos de diferentes namespaces e usá-los por meio da composição ou extensão. Os componentes são isolados de forma transparente em sua própria sandbox de JavaScript do namespace. Você nem vai saber que isso está acontecendo.

Interações com objetos globais
O Lightning Locker requer wrappers seguros para isolar componentes, limitando o desempenho e proibindo o uso de algumas bibliotecas de terceiros. O Lightning Web Security elimina a necessidade de usar wrappers seguros bloqueando ou modificando o comportamento dos componentes onde detecta código que não é seguro. Ele faz isso nas sandboxes onde o código reside para que ele não cause problemas. Isso permite que você tenha mais liberdade e flexibilidade para usar bibliotecas de terceiros em seus componentes.

Acesso ao conteúdo e identidade do iFrame
O Lightning Web Security permite que os componentes Web do Lightning acessem conteúdo em elementos no iframe para que você possa usar outros recursos de desenvolvimento da Web que foram bloqueados pelo Lightning Locker.

Desempenho aprimorado
Sem a necessidade de usar wrappers seguros, o código em sandboxes de JavaScript do namespace é executado com mais rapidez.

Melhor suporte a bibliotecas JavaScript de terceiros
No LWS, as bibliotecas podem fazer coisas como manipular objetos globais uma vez que são executadas em suas próprias sandboxes de JavaScript do namespace. Essas alterações em objetos globais não afetarão componentes em outros namespaces.

O Lightning Web Security evolui à medida que o JavaScript evolui
O LWS é modelado com base nos mais recentes padrões TC39 que evoluem com as plataformas do navegador, ou seja, não será desatualizado à medida que a tecnologia muda.

Na próxima unidade, vamos nos aprofundar na forma como o Lightning Web Security funciona, como você pode saber se tem componentes que serão afetados pelo LWS e como habilitar o LWS em sua organização.

Recursos

Compartilhe seu feedback do Trailhead usando a Ajuda do Salesforce.

Queremos saber sobre sua experiência com o Trailhead. Agora você pode acessar o novo formulário de feedback, a qualquer momento, no site Ajuda do Salesforce.

Saiba mais Continue compartilhando feedback