我有一个关于CakePHP2表单安全性的问题。 假设我们已启用Security组件并已构建了用户身份验证、权限和产品管理系统。
我们需要创建一个“报价请求”功能,允许用户请求特定产品的报价。
用户已登录,点击“请求”,进入/offer_requests/add/product_id。
场景2:
在/Views/OfferRequests/add.ctp中:
在OfferRequestsController中添加add()方法:
我的问题是哪种情况更安全,例如防止其他用户发出虚假请求。对于方案1,安全组件是否允许通过Firebug或其他软件操纵输入值?
我们需要创建一个“报价请求”功能,允许用户请求特定产品的报价。
用户已登录,点击“请求”,进入/offer_requests/add/product_id。
场景1:
在 /Views/OfferRequests/add.ctp 中:
<?php
echo $this->Form->create('OfferRequest');
echo $this->Form->input('user_id',
array('value' => $this->Session->read('Auth.User.id'),
'type' => 'hidden' ));
echo $this->Form->input('product_id');
echo $this->Form->input('quantity');
echo $this->Form->end(__('Submit'));
?>
场景2:
在/Views/OfferRequests/add.ctp中:
<?php
echo $this->Form->create('OfferRequest');
echo $this->Form->input('product_id');
echo $this->Form->input('quantity');
echo $this->Form->end(__('Submit'));
?>
在OfferRequestsController中添加add()方法:
<?php
$this->request->data['OfferRequest']['user_id'] = $this->Session->read('Auth.User.id');
?>
我的问题是哪种情况更安全,例如防止其他用户发出虚假请求。对于方案1,安全组件是否允许通过Firebug或其他软件操纵输入值?