在我的网络应用程序中,我正在使用“example.com/single.php?id=x”,抓取get参数并在页面上显示一条记录。
如何处理网址“example.com/single.php”(如果有人手动取消参数)的最佳做法/建议是什么?
我正在清理我的输入,所以我不是从安全的角度来询问,而是从内容方面询问。我显示什么,所有记录?目前,它没有在单一记录的区域显示任何内容......
由于
答案 0 :(得分:2)
single.php
是一个非常强大的指针,URL显示一条记录,因此没有“默认”显示(如显示所有记录)。
我希望它有一个很好的“找不到记录”错误消息,或者甚至像Stack Overflow那样抛出404。
答案 1 :(得分:0)
你可以在single.php
中输入默认ID,如果你从GET获得任何id,那么用这个替换
$display_id = empty($_GET['id']) ? specific id number : int($_GET['id']) ;
答案 2 :(得分:0)
您要做的是为single.php请求最少的必需参数集,如果其中一个参数不存在,那么您会抛出错误的请求。
例如:
//Validate
if(empty($_GET["id"]))
{
die("Invalid Request");
}
//Sanitation
if(!is_numeric($_GET["id"]))
{
die("Invalid Request");
}
//Force type's for security
$id = (int)$_GET["id"];
答案 3 :(得分:0)
我显示什么,所有记录?
这完全取决于页面的用途。
如果意图显示没有参数的所有记录 - 则显示它。 (我有很多页面显示没有参数的记录列表,并显示参数传递的编辑表格。这非常方便实用。)
如果不是 - 当没有要显示的页面时,404响应是严格的规则。
一个好的应用程序也会检查意外的参数(“example.com/single.php?id=x&foo-bar”),并在这种情况下抛出403。