在处理数据库记录时,将它们显示在 HTML 上并将它们的 ID 存储到隐藏字段中,以获取要更新的记录是不安全的,我尝试了其他方法,但我不确定这是否足够安全。
目前我将 ID 和 ID + Somekey 的 md5 校验和存储在另一个隐藏字段中。
<input type="hidden" name="ID" value="1"/>
<input type="hidden" name="Hash" value="<?php echo md5($ID."MYKEY"); ?>"/>
在 PHP 的后端我做同样的事情并测试他们是否相等。
<?php
$ID = $_GET['ID'];
$Checksum = $_GET['Hash'];
if(md5($ID."MYKEY") == $Checksum)
//Proceed Delete or update
?>
我这样做是因为有人可以更改记录的 ID 并与其他记录交互。
第二种解决方案是检查该记录是否与用户相关,方法是从数据库中选择它并测试该记录是否存在于该特定用户,但使用校验和我认为这可能是一种优化!
那么使用这种方式是否足够安全,使用校验和并为每个新会话生成动态密钥。
最好的