我有一个包含各种表单元素的表单。在创建模式下,所有元素都必须可编辑,但在编辑模式下,我需要锁定某些元素。
我尝试将属性设置为“只读”或“禁用”,并且它在浏览器视图中有效。但是当用户用例如操纵POST请求时在FireFox或其他工具中使用Webdeveloper工具(Forms->启用表单字段),然后从zend表单接受这些值。
如何安全保护/锁定表单元素?
答案 0 :(得分:0)
只是不要使用您不需要的发布数据修改您的实体/模型。对于这个问题,像$myModel->populate($request->getPost())
这样的函数可能不是最好的方法。而是给自己写一个像$myModel->populateForEdit($request->getPost())
这样的函数,在其中你只修改允许在某个动作上修改的字段。
永远记住:任何用户都可以向您发送他想要的任何数据。您可以在填充模型之前过滤数据!