首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >限制来自php/apache或.htaccess的http请求?

限制来自php/apache或.htaccess的http请求?
EN

Stack Overflow用户
提问于 2011-01-10 05:41:30
回答 3查看 3K关注 0票数 1

我的网站最近一直在接受漏洞扫描,我对此不负责任。我正在尝试阻止任何IP,要求超过合理数量的页面。实际上,我不确定数量可能是4-5个请求,并阻止它们。

我见过用光速web服务器做这件事,但我用的是apache。如何限制对我的页面的PHP请求,以便如果用户超过限制,他们将被阻止从我的网站30分钟?(我真的不确定什么是好的数量。这样真正的用户就不会被屏蔽了。)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-10 07:12:48

在这样的解决方案中,重要的是,实际的“阻塞”是非常便宜的资源成本。正确识别攻击者也很重要,不要无意中禁止某些人,但也不要太开放,因为在阻止某人之前,你已经浪费了很多资源。

然而,你并不是第一个遇到这个问题的人。

有一个很棒的叫做mod_evasive的apache模块,它就是为实现这个目的而配置的。

我曾经在一个服务器上做了一个非常简单的技术(因为它在使用partuclar应用程序时工作得更好),它的流程如下:

我的应用程序使用当前小时的键和用户ip地址对本地apc缓存中的一个变量进行计数,并检查是否达到了限制。

如果是,则将ip地址写入作业日志,在作业日志中,cronjob将其提取并使用iptables添加一个过滤器,因此来自该ip的包将被丢弃。

因此,它们甚至不能到达are服务器,所花费的资源也是最少的。

添加的规则每天都会被清除一次。

票数 1
EN

Stack Overflow用户

发布于 2011-01-10 06:08:35

我使用它来阻止自定义ip地址,只需在脚本中粘贴:

代码语言:javascript
复制
    <?php
$deny = array("111.111.111", "222.222.222", "333.333.333");
if (in_array ($_SERVER['REMOTE_ADDR'], $deny)) {
   header("location: http://www.mywarningpage_or_anywhereyouwouldlike.com/");
   exit();
} ?>

要自动阻止某人,您必须创建随时间变化的ip历史记录。

代码语言:javascript
复制
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$time = time();
$myFile = "ip_log.txt";
$fh = fopen($myFile, 'a') or die("can't open file");
$stringData = $ip.":"$time."\n";
fwrite($fh, $stringData);
fclose($fh);

现在自动化,让第一个脚本获取数组

代码语言:javascript
复制
$ip = $_SERVER['REMOTE_ADDR'];
$ips = file("ip_log.txt")
$count = count($ips);
for ($i=0;$i<=$count;$i++){
if (strpos($ips[$i],$ip)==true){
$teile = explode(" ", $pizza);
$ip_h[] = $teile[0]; // Teil1
$time_h[] = $teile[1]; // Teil2
}

//now you have arrays of the actual users ip with times.
// now set a timeinterval of amount of requests you define as "spam"
// and check with if for through array to deny similar like first script

由我编写,未经测试

票数 1
EN

Stack Overflow用户

发布于 2011-01-10 05:47:39

我想我们都知道接下来会发生什么(记住每个文件/图像等都是一个单独的请求)。

为了建议一种替代方案,为什么不简单地一次屏蔽一个违规的IP地址--你大概可以从你的流量日志中获得有问题的IP地址,并且在你的httpd配置中添加一个"Deny from xxx.xxx.xxx.xxx“风格的IP地址块是很容易的。(此外,与基于PHP的方法不同,这也适用于图像等。)

否则,很容易冒着阻止合法网络流量、谷歌蜘蛛等的风险。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4642016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档