Pregunta

Estoy tratando de usar el componente seguridad para evitar los ataques de CSRF y si uso el Formhelper para crear el boleto solo usando un Postlink, como este, falla:

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

No estoy seguro de si esto es posible o CakePHP, solo permite esta función utilizando los métodos Crear () y Fin () de Formhelper.

Documentación de CakePHP dice que eso esEs obligatorio usar el formhelper, pero no especifica mucho más.

¿Fue útil?

Solución

Cuando tiene el componente de seguridad habilitado y usa los métodos de formhelper para todos los formularios que no tiene que preocuparse por esto.Tampoco tienes que configurar nada.Funciona fuera de la caja.

para CSRF Puede usar las siguientes opciones:

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.

Si tiene todo, debe ver los tokens de CSRF en el HTML del formulario.Puede establecer cualquier opción adicional que le guste, pero funcionará casi de la caja para usted.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top