Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security Zend form:编辑时安全方式存储条目ID?_Security_Zend Framework_Zend Form - Fatal编程技术网

Security Zend form:编辑时安全方式存储条目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更不安全。 如果您有一些数据,但不希望用户看到这些数据,

我是Zend框架的新手,在使用Zend_表单创建编辑表单时遇到问题

我的问题是我需要在编辑期间存储条目ID,我见过一些使用隐藏表单字段的示例,但是用户可以操纵隐藏字段

因此:如何设置一个表单字段,该字段由
$form->populate($data)填充和在提交请求后可用,但用户在任何情况下都不可编辑标签/可见


谢谢你的帮助

你想隐藏什么样的数据? 数据应该在post或get中。如果您不将数据放在表单中,那么您将不得不使用get,它比post更不安全。 如果您有一些数据,但不希望用户看到这些数据,然后,您不应将这些数据放入表单中。您可以使用表单
s提交的值存储和检索隐藏数据。假设您的隐藏字段是用户的密码。当客户端编辑表单时,您不需要将密码发送回客户端。您可以根据用户提交的名字在控制器中操作密码还有姓。

如果您仍然坚持,您可能想尝试使用ZF加密数据并回显您的值,并将加密数据设置为隐藏的表单元素。

我不确定尝试隐藏值是否真的有意义

考虑以下几点:

  • 要显示正确的编辑器窗体,需要要编辑的对象的ID
  • 在允许用户编辑某个ID之前,您需要检查用户是否可以编辑它
因此,如果您将ID放入表单中,那么它实际上并不重要:

  • 发布编辑表单时,应再次检查用户是否仍然可以编辑ID
  • 如果用户更改了隐藏的ID,这其实并不重要。他们仍然可以通过在网站上找到其他ID来编辑它。(假设您的支票没有告诉您用户没有访问权限)

Zend_表单使用指定的表单元素生成HTML表单元素。因此,它的元素功能被缩小为一个简单的HTML表单

隐藏的表单元素用于传递那些用户不应该手动输入的数据。但正如你自己所说,不能保证它不会被篡改。因此,使用隐藏的表单值不会提供安全性

大多数情况下,您最好使用服务器端值(如存储在会话中)来引用要防止用户访问的值

我建议您将ID保留在会话值中,然后可以在隐藏表单字段中使用会话键。这样,用户无法更改目标ID。但是,您不能一步使用$form->populate($values)。您必须通过其他步骤设置目标值:

  • 从会话获取数据
  • 使用获取的数据设置表单元素值

  • 为什么我得到的职位比得到的更安全?请解释一下,谢谢