Вопрос

Я пытаюсь использовать компонент Security , чтобы избежать атак CSRF, и если я использую FormHelper для создания билета, просто используя PostLink, поскольку это не удается:

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

Я не уверен, что это возможно или CakePhp просто позволит эту функцию с использованием методов Create () и End () FormHelper.

CakePhp Документация только говорит, что этоявляется обязательным для использования Fixhelper, но он не указывает намного больше.

Это было полезно?

Решение

Когда у вас есть включение компонента безопасности, и вы используете методы FormHelper для всех форм, которые вам не нужно беспокоиться об этом.Вам также не нужно что-либо настроить.Работает из коробки.

Для CSRF вы можете использовать следующие параметры:

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.
.

Если у вас есть все, что вы должны увидеть токены CSRF в HTML из формы.Вы можете установить любые дополнительные параметры, которые вам нравятся, но это в значительной степени работает из коробки для вас.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top