我正在创建一个具有用户帐户的网站。对于每个用户帐户,用户可以执行更新个人详细信息、写博客等操作。当用户想要编辑博客时,我有以下表格(这是一个简化版本)。
<form action="goToThisPage.php" method="get">
<input type="hidden" name="blogID" value="4" />
<input type="text" name="blogTitle" value="" />
<textarea name="blogContent"></textarea>
<input type="submit" name="submit" value="Update Blog" />
</form>
现在你可以看到这个用户的 blogID 是 4,所以当他们更新记录时,它会用 ID 4 更新博客表。现在使用萤火虫或其他欺骗技术,用户可以将此 ID 更改为 8,并更新记录 8,这可能是其他人的条目。
我该如何防止这种情况?到目前为止,我已经想到了两种方法,想知道你认为什么是最好的想法(或建议另一个)。
- 使用随机字符串对 ID 进行编码,然后在提交后解码字符串,检索正确的 ID。
- 将其保留为数字,然后检查以确保一旦更新,其记录将通过数据库查询。
我显然想限制数据库查询,并且通过对 ID 进行编码,我认为是更好的选择。你们有什么感想?
提前致谢