通过在CakePHP上使用JavaScript创建表单来避免CSRF攻击

时间:2012-10-03 09:56:16

标签: cakephp cakephp-2.0 csrf cakephp-2.1 cakephp-2.2

CakePHP documentation表示为了避免CSRF攻击,必须在控制器中包含安全组件,此外,使用 FormHelper 创建表单。

在我的情况下,我需要使用JavaScript(jQuery)创建一些表单字段(例如textarea),因此我不能使用FormHelper。

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

当然,它没有通过安全措施,并且表单无法提交。

无论如何我可以使用JavaScript创建一个安全的表单创建一些字段吗?

感谢。

1 个答案:

答案 0 :(得分:3)

嗯,您有一个选项是解锁这些字段,以便在安全检查中忽略它们。在您看来,写一下:

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

另一种选择是创建要在窗体隐藏区域中使用Form帮助程序动态添加的表单字段,并仅在需要时显示它们。