我正在为人们更改评论,博客,收件箱等网址中ID的最强安全措施......
有什么建议吗?
答案 0 :(得分:7)
检查会话权限以查看是否允许他们执行操作?
如果允许他们这样做,那么就执行该操作。如果没有,那就给他们一个403。
答案 1 :(得分:5)
验证您获得的数据是一个好主意,如果您期望数字,请确保您获得数字。
if(isset($_GET['id']) && ctype_digit($_GET['id']))
{
$id = $_GET['id'];
}else
{
$id = 0;
}
如果您关心的是人们更改网址以查看内容,例如当您只想向他们展示图片时请求图片44,那么您有以下几种选择:
答案 2 :(得分:3)
如果它只是一个ID(数字,我猜),您所要做的就是将其验证为整数:
$id = (int) $_GET['id'];
然后您可以查询您的数据库。当ID不存在且无效时,您将获得空的返回集(因为$id
在这种情况下将为0
。)
答案 3 :(得分:2)
我认为对get请求进行数字签名并将其附加到URL可以正常工作。
使用仅为您的应用程序知道的私钥对其进行签名,然后散列GET变量并在& sig = blahblahblah中提供签名。
这可能会奏效,但我并不真正理解保护GET变量的必要性。如果设计得当,GET变量的确无关紧要。正确设计的应用程序不应允许用户GET变量做任何有害的事情。
答案 4 :(得分:2)
首先,不要依赖$ _GET来获取关键信息。始终仔细检查用户是否有权查看该评论ID,博客ID等等。至于ID过滤 - 简单的intval()
会有所帮助(但也不要忘记处理0)
答案 5 :(得分:1)