# Introduction

O script entre sites (também conhecido como XSS) é uma vulnerabilidade de segurança da Web que permite que um invasor comprometa as interações dos usuários com um aplicativo vulnerável. Ele permite que um invasor contorne a mesma política de origem, que é projetada para segregar sites diferentes uns dos outros. As vulnerabilidades de script entre sites normalmente permitem que um invasor se faça passar por usuário vítima, execute quaisquer ações que o usuário seja capaz de executar e acesse qualquer dado do usuário. Se o usuário vítima tiver acesso privilegiado ao aplicativo, o invasor poderá obter controle total sobre todas as funcionalidades e dados do aplicativo.

### How does XSS work? <a href="#how-does-xss-work" id="how-does-xss-work"></a>

O script entre sites funciona manipulando um site vulnerável para que ele retorne JavaScript malicioso aos usuários. Quando o código malicioso é executado dentro do navegador da vítima, o invasor pode comprometer totalmente a interação com o aplicativo.

<figure><img src="https://4024756925-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZbLrq3t9Su3CqGmkXz7o%2Fuploads%2FXWEphyek7zGEN8Fnas3V%2Fimage.png?alt=media&#x26;token=2bf0c8a5-9f03-4eff-8eaf-76d84cb9a9c2" alt=""><figcaption></figcaption></figure>

### Types of XSS

Existem três tipos principais de vulnerabilidades XSS:

<table data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><code>Stored (Persistent) XSS</code></td><td>O tipo mais crítico de XSS, que ocorre quando a entrada do usuário é armazenada no banco de dados back-end e exibida após a recuperação (por exemplo, postagens ou comentários)</td></tr><tr><td><code>Reflected (Non-Persistent) XSS</code></td><td>Ocorre quando a entrada do usuário é exibida na página após ser processada pelo servidor backend, mas sem ser armazenada (por exemplo, resultado de pesquisa ou mensagem de erro)</td></tr><tr><td><code>DOM-based XSS</code></td><td>Outro tipo de XSS não persistente que ocorre quando a entrada do usuário é mostrada diretamente no navegador e é completamente processada no lado do cliente, sem chegar ao servidor back-end (por exemplo, através de parâmetros HTTP do lado do cliente ou tags de âncora).</td></tr></tbody></table>

