这可能是一个愚蠢的问题,但我只是不知道正确的溶解。 我在循环中从数据库中选择项目。这些项目在我的网站上显示为提交表单。在表单中,我隐藏了包含特定项目ID的输入字段。唯一的问题是任何人都可以在开发人员工具/检查器中改变这个想法。什么是更可靠的方法呢?
我最终想要做的是将此值存储在我的数据库中。
所以我有这个问题:
$insert_query = mysqli_query($con," INSERT INTO `building` SET `player_id` = '".$_SESSION['user']['id']."', `building_id` = '".$_POST['building_id']."' ");
并使用此隐藏的输入字段:
<input type="hidden" value="<?php echo $row['building_id']; ?>" name="building_id">
如果用户无法更改ID,我该如何安全地处理此问题?
答案 0 :(得分:0)
在源代码中显示id不是问题。
但是你必须在每种情况下都发布验证表格发送的值是有效的,并且没有操纵id。
这意味着您必须验证是否允许玩家发送特殊ID。
答案 1 :(得分:0)
我认为你有
的危险答案 2 :(得分:0)
解决方案1:
使用您自己的算法添加一个二级隐藏字段,其中包含根据该ID生成的哈希值。收到from数据时,请检查收到的ID和哈希码是否匹配。
解决方案2:
在服务器端代码中检查用户是否有权访问收到的ID。这可以通过cookie或会话检查来完成。如果用户有权限,请不要担心ID,也不需要仔细检查上一页和目标页面中的ID是否相同!网页只是帮助用户轻松操作,您可以让用户使用纯代码以艰难的方式行事!