我需要根据用户ID更新数据库。我将用户ID存储在页面上的隐藏表单字段中,但我了解到任何人都可以使用浏览器检查器更改隐藏字段的值。
如何在不被篡改的情况下安全更新用户记录?
答案 0 :(得分:2)
最好在会话中存储此类ID。 在这种情况下,任何人(包括黑客)只知道会话ID,而不知道用户ID。通常会话ID是随机生成的,不可能猜到其他会话ID。
答案 1 :(得分:0)
您可以使用Guid代替Id。 猜对了Guid是不可能的
答案 2 :(得分:0)
您需要将敏感信息存储在user id
,user 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编码它将返回一个随机数并序列化那个。
并将其添加为隐藏值。