segurança

Reforçando a segurança com CSRF

Essa é uma dica rápida, mas muito valiosa. CSRF (Cross Site Request Forgeries) é um tipo de ataque que força os usuários a executarem ações indesejadas dentro da aplicação, através de comandos não autorizados.

O CodeIgniter já possui rotinas nativas pra lidar com CSRF, e são bem simples de serem aplicadas.

No arquivo ‘application/config/config.php’, você deve alterar o valor de ‘$config[‘csrf_protection’]’ para TRUE, assim a proteção CSRF será ativada.

Nos formulários, caso você utilize o helper Form, a crie o formulário usando ‘form_open()’, o campo hidden com o token será criado automaticamente, mas se você monta o formulário manualmente na view, então é necessário gerar esses token e passá-los para a view, para serem adicionados à propriedade ‘value’ do input hidden.

Veja no código abaixo como obter os tokens necessários:

Os tokens podem ser mantidos por toda a vida do cookie csrf, ou então serem gerados a cada submissão de formulário. Deixar que eles sejam gerados a cada submissão é torna a segurança mais rigorosa, mas pode trazer problemas de usabilidade, como por exemplo: ações assíncronas, navegação por abas, entre outras.

Para ativar a geração de tokens a cada submissão de formulário, você deve manter ‘$config[‘csrf_regenerate’]’ como TRUE. Essa confoguração encontra-se no arquivo ‘application/config/config.php’.

Ainda é possível definir um conunto de URIs que não farão uso da proteção CSRF, e isso pode ser feito e ‘$config[‘csrf_exclude_uris’]’, no mesmo arquivo de configuração.

Veja abaixo como configurar um conjunto de URIs para não serem protegidas:

Você pode utilizar a URI objetiva ou então usar expressões regulares, como é feito nas rotas.

Gostou da dica, então continue acompanhando, pois semanalmente temos novos conteúdos.

Bons Estudos!