可更改的输入隐藏字段


Changeable input hidden field

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

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

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

理论上,

任何位于客户端的东西(HTML,JavaScript...(都可以由用户修改。所以这个想法是要么不要在客户端放置任何敏感数据,要么至少在服务器端仔细检查。

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

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

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