Como evito a falsificação entre sites?
Uma falsificação entre sites (XSRF ou CSRF), também conhecida por vários nomes, incluindo falsificação de solicitação entre sites, condução de sessões e ataque com um clique, é um tipo difícil de explorar o site a ser evitado. Ele opera enganando um navegador da Web para enviar comandos não autorizados para um servidor remoto. Os ataques de falsificação entre sites funcionam apenas contra usuários que fizeram login em sites com credenciais autênticas; Como resultado, o logout dos sites pode ser uma medida preventiva simples e eficaz. Os desenvolvedores da Web podem usar tokens gerados aleatoriamente para ajudar a evitar esse tipo de ataque, mas devem evitar verificar o referenciador ou confiar em cookies.
É comum que as explorações de falsificação entre sites direcionem os navegadores da Web ao que é conhecido como "ataque confuso de representante". Acreditando estar agindo em nome do usuário, o navegador é levado a enviar comandos não autorizados para um servidor remoto. Esses comandos podem estar ocultos em partes aparentemente inocentes do código de marcação de uma página da Web, o que significa que um navegador que tenta baixar um arquivo de imagem pode realmente estar enviando comandos para um banco, varejista on-line ou site de rede social. Alguns navegadores agora incluem medidas projetadas para evitar ataques de falsificação entre sites, e programadores de terceiros criaram extensões ou plugins que não possuem essas medidas. Também pode ser uma boa idéia desativar o email HTML (HyperText Markup Language) no seu cliente preferido, porque esses programas também são vulneráveis a ataques de falsificação entre sites.
Como os ataques de falsificação entre sites dependem de usuários que se conectaram legitimamente a um site. Com isso em mente, uma das maneiras mais fáceis de impedir esse ataque é simplesmente desconectar os sites que você acabou de usar. Muitos sites que lidam com dados confidenciais, incluindo bancos e corretoras, fazem isso automaticamente após um certo período de inatividade. Outros sites adotam a abordagem oposta e permitem que os usuários façam logon persistentemente por dias ou semanas. Embora você ache isso conveniente, ele o expõe a ataques de CSRF. Procure uma opção "lembre-se de mim neste computador" ou "mantenha-me conectado" e desative-a. Clique no link de logout quando concluir uma sessão.
Para desenvolvedores da web, a eliminação de vulnerabilidades de falsificação entre sites pode ser uma tarefa particularmente desafiadora. A verificação das informações do referenciador e do cookie não oferece muita proteção, porque as explorações de CSRF aproveitam as credenciais legítimas do usuário e essas informações são fáceis de falsificar. Uma abordagem melhor seria gerar aleatoriamente um token de uso único cada vez que um usuário efetuar login e exigir que o token seja incluído em qualquer solicitação enviada pelo usuário. Para solicitações importantes, como compras ou transferências de fundos, exigir que o usuário digite novamente o nome de usuário e a senha pode ajudar a garantir a autenticidade da solicitação.