Php 如果url包含无效字符,如何检测和阻止ip
我有一个url中有id=的页面。问题是,这吸引了试图操纵url的黑客的大量不必要的注意,例如id=133+顺序乘以1——(遗憾的是,更改id不是一个选项) 我有下面的代码来获取id并去除所有的“不好”Php 如果url包含无效字符,如何检测和阻止ip,php,ip,blocking,Php,Ip,Blocking,我有一个url中有id=的页面。问题是,这吸引了试图操纵url的黑客的大量不必要的注意,例如id=133+顺序乘以1——(遗憾的是,更改id不是一个选项) 我有下面的代码来获取id并去除所有的“不好” $ia = intval($_GET['id']); $ib = mysql_real_escape_string($ia); $ic = strip_tags($ib); 但我真正想做的是在x时间内禁止用户的ip地址。这样,如果他们曾经是一个安全弱点,它将为我赢得时间来检测它,并在黑客之前修复
$ia = intval($_GET['id']);
$ib = mysql_real_escape_string($ia);
$ic = strip_tags($ib);
但我真正想做的是在x时间内禁止用户的ip地址。这样,如果他们曾经是一个安全弱点,它将为我赢得时间来检测它,并在黑客之前修复它(安全总比抱歉好!)
我想排除不必要的CPU使用
是否有人知道一个php脚本,它可以在x时间内检测和阻止基于url操作的ip?或者,如果有人想展示一个他们已经做过的基本例子,那就更好了 您可以从超级全局变量
$\u SERVER
获取所有必要的数据,您可以使用遥控地址和遥控主机键(详细信息)
要阻止某人,可以将此值与以前保存的值进行比较。您可以将它们保存在任何位置,如数据库(最简单的解决方案)或外部文件中。为了更安全,服务器不应访问此文件
然而,这并不是一个完美的解决方案,因为更改IP地址的可能性和动态设置的问题
在您的数据库/文件中,您可以添加一个类似“expires”的字段,其中包含允许用户使用的时间
但正如我在评论中所说,我不会阻止任何人。正如@DaveRandom所写的,您可以简单地将
id
转换为整数,从而避免SQL注入。请记住,您应该考虑从客户端获取和处理的所有变量,也包括$\u POST
变量。您可以从超级全局变量$\u服务器
获取所有必要的数据,您可以使用密钥REMOTE\u ADDR和REMOTE\u HOST(更多信息)
要阻止某人,可以将此值与以前保存的值进行比较。您可以将它们保存在任何位置,如数据库(最简单的解决方案)或外部文件中。为了更安全,服务器不应访问此文件
然而,这并不是一个完美的解决方案,因为更改IP地址的可能性和动态设置的问题
在您的数据库/文件中,您可以添加一个类似“expires”的字段,其中包含允许用户使用的时间
但正如我在评论中所说,我不会阻止任何人。正如@DaveRandom所写的,您可以简单地将
id
转换为整数,从而避免SQL注入。请记住,您应该考虑从客户端获取和处理的所有变量,以及$\u POST
变量。您有两个选择:
我不确定,但是,根据您使用的服务器的不同,如果您的服务器提供了一个钩子,您可以在进一步处理传入请求之前使用它来检查它们,那么甚至可以在选项2和选项3之间实现一个混合选项。您有两个选择: