可变输入隐藏字段

时间:2013-10-09 14:10:09

标签: php html input hidden

我有一个关于input = hidden field的棘手问题,值为$ _SESSION ['userid']。问题是,当有人打开萤火虫时,他可以轻松地更改价值数据......我该如何防止这种情况?

<input type="hidden" name="id" value="ID" />

2 个答案:

答案 0 :(得分:3)

你不能,你可能想在表单提交后验证$ _POST ['id'] === $ _SESSION ['userid'],以验证你在那里得到了正确的值。

答案 1 :(得分:2)

客户端的任何内容(HTML,JavaScript ...)理论上都可以由用户修改。因此,我们的想法是不在客户端放置任何敏感数据,或者至少在服务器端进行双重检查。

在您的示例中,您使用它似乎是一个SESSION变量。为什么在客户端需要它?如果此数据已经在$ _SESSION中,您可以直接使用它吗? 在接收代码而不是阅读$_POST['id]时,只需直接阅读$_SESSION['userid'] ??

如果您确实需要重新发送数据(如果是这样解释原因),那么在服务器端检查您获得的内容是否与当前登录的用户(或当前在会话中的内容)匹配。

在我的一个自动生成表单的应用程序中,我只是忽略了服务器端的一些字段,并将其替换为我所期望的那些 - 无论是从我的数据库或会话变量中获取的。