Pergunta

Estou tentando usar o Segurança componente, a fim de evitar ataques CSRF e se eu utilizar o formHelper para criar o bilhete, apenas usando um postLink, como esta, é falha:

<?php echo $this->Form->postLink(__('Delete'), array('action' => 'delete', $user['User']['id']),  array('class' => 'button mini'), __('Are you sure?', $user['User']['id'])); ?>

Eu não tenho certeza se isso é possível ou CakePHP apenas permitir que este recurso, usando o método create() e end() métodos de formHelper.

Documentação do CakePHP apenas diz que é obrigatório para utilizar o formHelper mas não especifica muito mais.

Foi útil?

Solução

Quando você tem o componente de Segurança habilitada e utilizar o FormHelper métodos para todos os formulários que você não terá de se preocupar com isso.Você também não tem que configurar nada.Ele funciona fora da caixa.

Para CSRF você pode usar as seguintes opções:

property SecurityComponent::$csrfCheck
Whether to use CSRF protected forms. Set to false to disable CSRF protection on forms.

property SecurityComponent::$csrfExpires
The duration from when a CSRF token is created that it will expire on. Each form/page request will generate a new token that can only be submitted once unless it expires. Can be any value compatible with strtotime(). The default is +30 minutes.

property SecurityComponent::$csrfUseOnce
Controls whether or not CSRF tokens are use and burn. Set to false to not generate new tokens on each request. One token will be reused until it expires. This reduces the chances of users getting invalid requests because of token consumption. It has the side effect of making CSRF less secure, as tokens are reusable.

Se você tem tudo, você deve ver o CSRF tokens no html do formulário.Você pode definir as opções adicionais que você gosta, mas ele vai muito bem funcionar para você.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top