--- title: Cross Site Scripting localeTitle: Cross Site Scripting --- ## Cross Site Scripting Cross Site Scripting é um tipo de vulnerabilidade em um aplicativo da web causado pelo programador não sanear a entrada antes de enviar a entrada para o navegador da web (por exemplo, um comentário em um blog). É comumente usado para executar JavaScript mal-intencionado no navegador da Web para fazer ataques, como roubar cookies de sessão entre outras ações maliciosas, para obter privilégios de nível superior no aplicativo da Web. ### Exemplo de ataque de script entre sites Um blog permite que os usuários estilizem seus comentários com tags HTML, no entanto, o script que alimenta o blog não elimina as tags ` ``` ### Defendendo seu site contra ataques de script entre sites em PHP No PHP, existem duas funções principais, `htmlspecialchars()` e `strip_tags()` , embutidas para se proteger contra ataques de script entre sites. A função `htmlspecialchars($string)` impedirá que uma string HTML seja processada como HTML e a exiba como texto simples no navegador da web. **exemplo de código htmlspecialchars ()** ```PHP alert('Cross Site Scripting!');"; echo htmlspecialchars($usercomment); ``` A outra abordagem é a `strip_tags($string, $allowedtags)` que remove todas as tags HTML, exceto as tags HTML que você `strip_tags($string, $allowedtags)` lista de permissões. É importante notar que com a `strip_tags()` você tem que ter mais cuidado, esta função não impede o usuário de incluir o javascript como um link, você terá que higienizar isso por conta própria. **exemplo de código strip\_tags ()** ```php alert('Cross Site Scripting!');"; $allowedtags = "

"; echo strip_tags($usercomment, $allowedtags); ``` **Definindo o cabeçalho de proteção X-XSS:** No PHP você pode enviar o `X-XSS-Protection` Header, que dirá aos navegadores para verificar se há um ataque Cross Site Scripting refletido e bloquear o carregamento da página. Isso não impede que todos os ataques de script entre sites sejam apenas refletidos e devem ser usados ​​em combinação com outros métodos. ```PHP ``` #### Mais Informações: * [OWASP Wiki - Cross Site Scripting](https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)) * [php.net strip\_tags () manual](https://secure.php.net/manual/en/function.strip-tags.php) * [php.net htmlspecialchars () manual](https://secure.php.net/manual/en/function.htmlspecialchars.php) * [MDN - Política de segurança de conteúdo (CSP)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP)