Início‎ > ‎

Usar corretamente POST e GET

A especificação do protocolo HTTP define diversos métodos, como HEAD, PUT, TRACE, etc. Dentre estes métodos, os mais comuns são POST e GET, que foram definidos da seguinte forma:

POST
Submete dados a serem processados, com os dados inseridos no corpo da requisição. Pode resultar na criação de novos recursos e/ou na alteração de recurso existente.
GET
Solicita um determinado recurso, não devendo ser usado para operações que apresentem efeitos colaterais.

No item Re-autenticar antes de operações críticas, é apresentado o problema conhecido com CSRF, em que um site malévolo consegue induzir o browser do usuário a fazer uma requisição a uma aplicação cuja sessão autenticada do usuário está válida. Uma das formas de execução do ataque é a inserção de tags que executem requisições, como a tag <img>. Esta tag normalmente executa um GET em um recurso de imagem na aplicação web.

No entanto, no caso do ataque, a tag <img> aponta para a URL de uma operação crítica da aplicação. Esta operação deve executar alguma alteração no estado da aplicação web, já que ataques de CSRF não permitem aos atacantes ter acesso às informações retornadas pelo servidor web. Ou seja, o ataque é executado porque a aplicação aceita uma requisição GET numa operação que apresenta efeitos colaterais (alterações de estado).

Assim, se os métodos POST e GET forem utilizados conforme definido no padrão HTTP, a forma mais simples de ataque de CSRF deixa de ser possível, levando à necessidade de utilização de scripts pelo atacante. Em muitos servidores J2EE, as aplicações permitem o uso tanto de GET quanto de POST para qualquer operação. Estes servidores deixam as aplicações extremamente vulneráveis a ataques de CSRF.

É importante ressaltar que o uso das recomendações acima não impede a ocorrência de ataques de CSRF. Deve-se combinar as recomendações acima com o item Re-autenticar antes de operações críticas para obter um nível adequado de proteção.

Fonte

ZELLER, William and FELTEN, Edward W. Cross-site Request Forgery: Exploitation and Prevention. Sptember 2008: http://www.freedom-to-tinker.com/sites/default/files/csrf.pdf
Comments