0

正如我在其他帖子中所读到的,与第一个模型相关的表的 id 必须由表单中的隐藏字段设置。

echo $form->input('Gallery.id', array('type'=>'hidden', 'value'=>$showcase['Gallery']['id']));

(请参阅更新 hasone 关系行为异常(cakephp)中的问题)

但这并没有那么冒险,因为任何人都可以编辑这个隐藏字段值,并且另一个数据集会被更新。

尝试使用与 hasOne / belongsTo 关系关联的 2 个模型更新整个数据集时,避免此类安全问题的最佳选择是什么?

谢谢

最好的斯蒂芬

4

2 回答 2

0

您可以切换到使用 UUID。只需要将您的主键和外键更改为 char(36),然后 cake 会完成剩下的工作。

于 2012-12-21T00:30:21.033 回答
0

第一个选项是在保存时进行多个查询和检查

第二个选项是http://book.cakephp.org/2.0/en/core-libraries/components/security-component.html#form-tampering-prevention

因此,无论哪种方法在您的特定情况下最有效...

于 2012-12-20T22:59:39.300 回答