如何在表单中禁用用户隐藏ID?

时间:2015-11-13 11:32:25

标签: php html mysql security

我需要根据用户ID更新数据库。我将用户ID存储在页面上的隐藏表单字段中,但我了解到任何人都可以使用浏览器检查器更改隐藏字段的值。

如何在不被篡改的情况下安全更新用户记录?

4 个答案:

答案 0 :(得分:2)

最好在会话中存储此类ID。 在这种情况下,任何人(包括黑客)只知道会话ID,而不知道用户ID。通常会话ID是随机生成的,不可能猜到其他会话ID。

答案 1 :(得分:0)

您可以使用Guid代替Id。 猜对了Guid是不可能的

答案 2 :(得分:0)

您需要将敏感信息存储在user iduser email等会话中。

根据您的不同,您可以从数据库中获取信息。

如您所说,隐藏变量可以通过控制台进行修改。

用户无法修改会话变量,因此可以安全地存储用户(会话)特定信息。

例如,如果您的网站有登录用户abc,其ID为7

从MySQL数据库中获取他的数据,如:

SELECT * FROM userData WHERE user_id = $_SESSION['user_id']

答案 3 :(得分:0)

您可以对您的值进行编码和解码,

对我来说,我创建并使用一些随机值的数组,并将我的私有值插入其中,

array([test] => sudhakar, [name] => 'foo', [value] => foobar);

并且我用base 64编码它将返回一个随机数并序列化那个。

并将其添加为隐藏值。