Избегайте CSRF-атак, создавая форму с JavaScript на CakePHP

В документации CakePHP сказано, что во избежание CSRF-атак необходимо включить в контроллер компонент Security и, кроме того, создать форму с помощью FormHelper.

В моем случае мне нужно создать некоторые поля формы (например, текстовое поле), используя JavaScript (jQuery), и поэтому я не могу использовать FormHelper для них.

$('#body').html('<textarea name="data[post][body]" type="textarea" cols="30" rows="3">'+text+'</textarea>');

И, конечно, он не проходит безопасность, и форма не может быть отправлена.

Могу ли я в любом случае создать безопасную форму, создав некоторые поля с помощью JavaScript?

Благодарю.

1 ответ

Решение

Ну, один из вариантов - разблокировать эти поля, чтобы они игнорировались при проверке безопасности. По вашему мнению, напишите:

<?php $this->Form->unlockField('fieldname'); ?>

Другой вариант - создать поля формы, которые вы хотите динамически добавить с помощью помощника по форме, в скрытой области формы и показывать их только при необходимости.

Другие вопросы по тегам