Security Zend form:编辑时安全方式存储条目ID?
我是Zend框架的新手,在使用Zend_表单创建编辑表单时遇到问题 我的问题是我需要在编辑期间存储条目ID,我见过一些使用隐藏表单字段的示例,但是用户可以操纵隐藏字段 因此:如何设置一个表单字段,该字段由Security Zend form:编辑时安全方式存储条目ID?,security,zend-framework,zend-form,Security,Zend Framework,Zend Form,我是Zend框架的新手,在使用Zend_表单创建编辑表单时遇到问题 我的问题是我需要在编辑期间存储条目ID,我见过一些使用隐藏表单字段的示例,但是用户可以操纵隐藏字段 因此:如何设置一个表单字段,该字段由$form->populate($data)填充和在提交请求后可用,但用户在任何情况下都不可编辑标签/可见 谢谢你的帮助 你想隐藏什么样的数据? 数据应该在post或get中。如果您不将数据放在表单中,那么您将不得不使用get,它比post更不安全。 如果您有一些数据,但不希望用户看到这些数据,
$form->populate($data)填充代码>和在提交请求后可用,但用户在任何情况下都不可编辑标签/可见
谢谢你的帮助 你想隐藏什么样的数据?
数据应该在post或get中。如果您不将数据放在表单中,那么您将不得不使用get,它比post更不安全。
如果您有一些数据,但不希望用户看到这些数据,然后,您不应将这些数据放入表单中。您可以使用表单s提交的值存储和检索隐藏数据。假设您的隐藏字段是用户的密码。当客户端编辑表单时,您不需要将密码发送回客户端。您可以根据用户提交的名字在控制器中操作密码还有姓。
如果您仍然坚持,您可能想尝试使用ZF加密数据并回显您的值,并将加密数据设置为隐藏的表单元素。我不确定尝试隐藏值是否真的有意义
考虑以下几点:
- 要显示正确的编辑器窗体,需要要编辑的对象的ID
- 在允许用户编辑某个ID之前,您需要检查用户是否可以编辑它
因此,如果您将ID放入表单中,那么它实际上并不重要:
- 发布编辑表单时,应再次检查用户是否仍然可以编辑ID
- 如果用户更改了隐藏的ID,这其实并不重要。他们仍然可以通过在网站上找到其他ID来编辑它。(假设您的支票没有告诉您用户没有访问权限)
Zend_表单使用指定的表单元素生成HTML表单元素。因此,它的元素功能被缩小为一个简单的HTML表单
隐藏的表单元素用于传递那些用户不应该手动输入的数据。但正如你自己所说,不能保证它不会被篡改。因此,使用隐藏的表单值不会提供安全性
大多数情况下,您最好使用服务器端值(如存储在会话中)来引用要防止用户访问的值
我建议您将ID保留在会话值中,然后可以在隐藏表单字段中使用会话键。这样,用户无法更改目标ID。但是,您不能一步使用$form->populate($values)。您必须通过其他步骤设置目标值:
从会话获取数据
使用获取的数据设置表单元素值
为什么我得到的职位比得到的更安全?请解释一下,谢谢