通过在CakePhp上使用JavaScript创建表单来避免CSRF攻击
-
13-12-2019 - |
题
cakephp文档表示避免CSRF攻击必须在控制器中包含安全性组件,此外,使用 formhelper 创建表单。
在我的情况下,我需要使用javascript(jquery)创建一些表单字段(如textarea),而我无法为它们使用formhelper。
$('#body').html('<textarea name="data[post][body]" type="textarea" cols="30" rows="3">'+text+'</textarea>');
.
当然,它不会通过安全性,表单未能提交。
如果有的话我可以创建一个安全的表单,创建带有javascript的一些字段?谢谢。
解决方案
嗯,一个选项是解锁这些字段,以便在安全检查中忽略它们。在您的视图中,写入:
<?php $this->Form->unlockField('fieldname'); ?>
.
另一个选项是创建要在表单的隐藏区域中的表单辅助程序动态添加的表单字段,并且如果需要,仅向其显示。
不隶属于 StackOverflow