【发布时间】:2016-01-28 17:55:02
【问题描述】:
如何防止恶意用户更改 URL 或表单数据,特别是记录 ID。例如:
http://example.com/deleteproduct.php?id=34
用户可以将 ID 值从 34 更改为 69,然后删除属于另一个客户的记录。我想明显的保护是在执行删除之前验证 ID 以确保用户可以访问该记录,但是否有另一种方法被认为是更好的做法?验证 ID 的不利之处在于需要更多的数据库查询,这很好避免。
【问题讨论】:
-
尝试生成随机唯一ID和主键。类似
sdfjh484957934ueirt。 -
您永远不会对数据过于谨慎,尤其是在更改数据时。在你做之前验证一切。
-
出于这些原因,我显然会避免使用查询字符串。此外,我会使用@Mr.Engineer 和 Robbie 上面所说的内容。确保 ID 属于相关用户。
-
@JayBlanchard:恶意用户可以像修改查询字符串一样简单地发布请求。
-
这就是为什么我添加了额外的警告@BradKent