利用.Htaccess阻止IP恶意攻击网站,禁止指定域名访问,禁止机器爬虫,禁止盗链

前几天发现我的网站被一些IP发起了大量恶意的、有针对性的扫描,企图通过暴力探测方式获取网站中一些内部配置文件和信息。我是用.Htaccess来化解攻击的,就是在.Htaccess文件里添加了下面这段配置:

 order allow,deny
 deny from 180.97.106.
 allow from all

.Htaccess对与一个网站来说是一种功能非常强大的配置文件。对它的功能了解的越多,你就越容易掌控你的网站配置。利用.Htaccess来禁止某个IP对网站的访问是它是基本功能之一。上面的配置只是用法之一,下面我将汇总一下在这个相关主题下的更多的用法。

指定IP阻挡访问

 order allow,deny
 deny from 192.168.44.201
 deny from 224.39.163.12
 deny from 172.16.7.92
 allow from all

上面的代码展示了如何禁止3个不同的IP对网站的访问。

指定IP段阻挡访问

如果你手头有很多IP要禁止,觉得一个一个指定太麻烦,下面是如何一次禁止一个IP段:

 order allow,deny
 deny from 192.168.
 deny from 10.0.0.
 allow from all

指定域名阻挡访问

 order allow,deny
 deny from some-evil-isp.com
 deny from subdomain.another-evil-isp.com
 allow from all

上面的代码可以阻止特定的 ISP 对网站的访问。

使用.Htaccess禁止机器爬虫(bots,spiders)

在中国,我想你需要的搜索引擎只有谷歌和百度,其它的小搜索引擎,比如搜狗、360等都可以忽略,否则,这些不重要的搜索引擎的爬虫不但不会给你带来好处,而且会爬死你的网站。下面就是如何禁止它们的方法:

 #get rid of the bad bot
 RewriteEngine on
 RewriteCond %{HTTP_USER_AGENT} ^BadBot
 RewriteRule ^(.*)$ http://go.away/

上面是禁止一种爬虫,如果想禁止多个,你可以在.Htaccess里这样配置:

 #get rid of bad bots
 RewriteEngine on
 RewriteCond %{HTTP_USER_AGENT} ^BadBot [OR]
 RewriteCond %{HTTP_USER_AGENT} ^EvilScraper [OR]
 RewriteCond %{HTTP_USER_AGENT} ^FakeUser
 RewriteRule ^(.*)$ http://go.away/

这段代码就同时阻止了3中不同的爬虫,注意其中的 “[OR]” 。

使用.Htaccess禁止盗链(hotlink)

如果你的网站很受人欢迎,肯定就会有喜欢你网站上的图片或视频等资源,有些人会没有职业道德的直接嵌入它们的页面中,占用或浪费你的带宽,影响你的服务器的稳定。对于这样的盗链行为,使用.Htaccess很容易屏蔽它们的盗取,就像下面:

 RewriteEngine on
 RewriteCond %{HTTP_REFERER} ^http://.*somebadforum\.com [NC]
 RewriteRule .* - [F] 

在.Htaccess中添加了上面这段代码后,当somebadforum.com网站盗链你的网站资源时,服务器会返回403 Forbidden错误,你的带宽将不再遭受损失。

下面的代码是如何阻止多个网站:

 RewriteEngine on
 RewriteCond %{HTTP_REFERER} ^http://.*somebadforum\.com [NC,OR]
 RewriteCond %{HTTP_REFERER} ^http://.*example\.com [NC,OR]
 RewriteCond %{HTTP_REFERER} ^http://.*lastexample\.com [NC]
 RewriteRule .* - [F] 

你也看到了, .htaccess是一种非常强大的网站服务器配置工具,通过它,你能对网站服务器拥有丰富自由的掌控,而是解决方法通常是非常的简单、优雅、基本上不需要重启服务器,也就是立即生效。

如果你的服务器上还没有这个配置文件,赶紧建一个吧!

理多关于利用.Htaccess文件阻止IP恶意攻击网站的文章请点击下面的相关链接

(0)

相关推荐

  • nginx支持.htaccess文件实现伪静态的方法分享

    在Google上搜索的资料很多人都说nginx目前不支持.htaccess文件,我按照nginx的规则试验了一下,结果发现nginx是完全支持.htaccess文件的! 方法如下: 1. 在需要使用.htaccess文件的目录下新建一个.htaccess文件, 如本人的一个Discuz论坛目录: 复制代码 代码如下: vim /var/www/html/168pc/bbs/.htaccess 2. 在里面输入规则,我这里输入Discuz的伪静态规则: 复制代码 代码如下: # nginx rew

  • APACHE支持.htaccess伪静重写出错 No input file specified的解决方案

    在你的Apache安装文件夹conf里找到httpd.conf文件 搜索LoadModule rewrite_module modules/mod_rewrite.so 如果前面有注释符号#,请去掉. 搜索Options FollowSymLinks,然后将它下面的AllowOverride None 修改为AllowOverride All: [1] 没想到遇见了 No input file specified 因为项目用了URL route ,估摸着可能是rewrite的问题. 记录一下解决

  • 使Nginx服务器支持.htaccess的方法

    可能很多朋友都常用nginx不支持.htaccess,只有apache才支持.htaccess文件,其实这是错误的看法nginx也是支持.hatccess的哦,下面我来给各位总结一下配置方法. 其实nginx和.htaccess一点关系都没有,只是一大堆人深受apache的影响觉得nginx应该也要支持.htaccess功能.在nginx的配置中直接include .htaccess文件就好 include /站点目录/.htaccess; 多么简单,但是更让人哭笑不得的是有大部分人根本就不知道

  • Apache2.4.x版wampserver本地php服务器如何让外网访问及启用.htaccess

    Apache 从2.2升级到 Apache2.4.x 后配置文件 httpd.conf 的设置方法有了大变化,以前是将 deny from all 全部改成 Allow from all 实现外网访问,现在是将 Require all denied 以及 Require local 都该为 Require all granted 就可以了. .htaccess 如果不起作用将 LoadModule rewrite_module modules/mod_rewrite.so 前面的注释(#)去掉就

  • Apache使用 .htaccess 来实现强制https访问的方法

    我们可以用Apache的.htaccess的重定向规则来实现http强制跳转到https访问网站.( 重要提示:必须将代码放到.htaccess文件内容的最前面,以保证重定向优先权.) 代码如下: RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://xpsss.com/$1 [R,L] 或者 RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteR

  • 21个常用的apache .htaccess文件配置技巧分享

    Apache Web 服务器可以通过 .htaccess 文件来操作各种信息,这是一个目录级配置文件的默认名称,允许去中央化的 Web 服务器配置管理.可用来重写服务器的全局配置.该文件的目的就是为了允许单独目录的访问控制配置,例如密码和内容访问. 1. 定制目录的 Index 文件 复制代码 代码如下: DirectoryIndex index.html index.php index.htm 你可以使用上面的配置来更改目录的默认页面,例如你将这个脚本放在 foo 目录,则用户请求 /foo/

  • apache使用.htaccess文件实现屏蔽wget下载网站内容

    经发现,虽然wget遵循 robots.txt 规则,但是那个还是可以绕过去,现在把我自己使用的屏蔽方法分享给大家: 1. 屏蔽下载任何文件 .htaccess SetEnvIfNoCase User-Agent "^wget" bad_bot <Limit GET POST> Order Allow,Deny Allow from all Deny from env=bad_bot </Limit> 2. 屏蔽下载部分文件 .htaccess SetEnvIf

  • 教你如何在CI框架中使用 .htaccess 隐藏url中index.php

    秉承MVC架构的思想,CI中的所有控制器都需要经过单点入口文件index.php(默认)来加载调用.也就是说,在默认情况下,所有CI开发项目的URL都形如以下这种形式: http://localhost/index.php/blog/logs/this_is_a_test_entry 很显然,默认情况下,index.php在URL地址段中的存在一定程度上影响了URL的简洁和SEO的进行.我们可以通过下面本文介绍的方法来去掉这个讨厌的Index.php. 你或许已经注意到在CodeIgniter用

  • Apache服务器中.htaccess文件的实用配置示例集锦

    .htaccess 是什么? htaccess (hypertext access,超文本访问) 是为网站所有者提供用于控制服务器环境变量以及其它参数的选项,从而增强他们网站的功能的文件.这些文件可以在网站目录树的任何一个目录中,并向该目录以及目录中的文件和子目录提供功能. 这些功能是什么呢?其实这些是服务器的指令,例如命令服务器执行特定任务的行,这些命令只对该文件所在目录中的文件和子目录有效.这些文件默认是隐藏的,因为所有操作系统和网站服务器默认配置为忽略它们,但如果查看隐藏文件的话,你就可以

  • Apache使用.htaccess 屏蔽恶意 User Agent(防蜘蛛)

    一.登记在册的恶意 User Agent 1."Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; EmbeddedWB 14.52 from: http://www.bsalsa.com/ EmbeddedWB 14.52; .NET CLR 2.0.50727)" 下面是网站日志中的两条记录,这个 User Agent 会重复访问注册页面,并获取验证码,这是垃圾留言和恶意注册的开始. 复制代码 代码如下: 116.242.22.10

  • Apache服务器中使用.htaccess实现伪静态URL的方法

    很多朋友可能是空间也就是虚拟主机,自己就没有权限来管理apache的httpd.conf文件了,自然就不太可能可以在这上面写静态规则了,下面我们可以让主机商开启支持.htaccess方法,这样就可以自己写了. 首先配置服务器启动重写模块 打开 Apache 的配置文件 httpd.conf . 将#LoadModule rewrite_module modules/mod_rewrite前面的#去掉. 保存后重启Apache 写重写规则 举例说明,test.php里的代码为 <?php $id=

  • PHP中的.htaccess伪静态文件

    工具/原料 url重写 iis7 方法/步骤 安装iis,这个就不多说了.使用系统自带的启动或关闭windows功能来安装. http://www.microsoft.com/web/downloads/,下载并安装"web 平台安装程序",目前最新版本为5.0,双击,下一步到底即可. 打开Internet Information Services(IIS)管理器,在管理中已经多了一个"Web 平台安装程序",双击打开. 搜索"url",搜索结果

  • 禁止网站显示文件目录列表的2个方法(htaccess)

    网站文件目录列表类似下图这样的显示方式,这样的效果,默认情况下是可以显示的,新购买的主机默认都可以把网站内的文件以列表的形式显示出来: 索引管理器 通过索引管理器你可以定制在网络上查看目录的方式. 你可以选择默认样式.无索引,或者两种索引类型. 如果不希望别人查看到你目录中的文件,则选择无索引. 但是有很多童鞋(包括我)不喜欢自己的博客显示出目录列表出来,以下有两个方法可以解决这个问题(原理是一样的): 方法一: 修改.htaccess文件 在空间网站的根目录下找到.htaccess文件,空间路

  • .htaccess rewrite 规则详细说明

    国内的虚拟机一般不提供.htaccess功能(据我所知,discuz的主机好像提供此功能),而在国外主机中,.htaccess功能似乎是标配,笔者的Blog架在MT上,支持.htaccess,每次看到一堆别人写好了的.htaccess设置,很多命令都不甚了了,查看.修改起来很不方便,痛定思痛,潜心学习一下,知其所以然嘛- 学习前提:(不会的朋友要学习一下,才能更好的理解下面的文字呢) Linux基础(不会也没事啦,写个.htaccess没必要大费周折啦,推荐:鸟哥私房菜linux基础) 正则表达

  • 使用.htaccess设置图片防盗链的详细方法

    真正有用的.htaccess写法为 RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ [NC] RewriteCond %{HTTP_REFERER} !jb51.net [NC] RewriteCond %{HTTP_REFERER} !youdao.com [NC] RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC] RewriteCond %{HTTP_REFERER} !twitter.com [NC

  • Apache服务器中.htaccess的基本配置总结

    .htaccess文件(或者"分布式配置文件"提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录.作为用户,所能使用的命令受到限制.管理员可以通过Apache的AllowOverride指令来设置. - 子目录中的指令会覆盖更高级目录或者主服务器配置文件中的指令. - .htaccess必须以ASCII模式上传,最好将其权限设置为644. 错误文档的定位 常用的客户端请求错误返回代码: 401 Authorizat

  • 让Apache 2支持.htaccess并实现目录加密的方法

    实现需求 最近在使用学校电脑时,经常遇到这么个场景:想下载个CodeBlocks用于coding或想下个vpt来玩会万智,但通过机房网络访问一些国外网站的下载速度只有10+kB/s,不到100m的文件总能让人等很久. 以前通过百度云来解决了这个问题,现在百度云下载这些文件需要使用客户端(大文件?),所以寻思着有没有什么好的解决方案. 突然想起自己在阿里云有个小服务器,在上面挂了个OJ,大多数资源都是闲置的.所以很简单,我就在网站目录下面传了我需要的常用文件上去,走阿里云的带宽下载.但直接放上去的

  • Ubuntu下开启Apache对.htaccess 的支持

    步骤: 终端运行 复制代码 代码如下: sudo a2enmod 程序提示可供激活的模块名称,输入: 其中rewrite 修改/etc/apache2/sites-enabled/000-default (该链接指向的是站点配置文件) 把(默认的www目录.或者需要应用.htaccess的目录)下的AllowOverride 属性改为All,保存. 重新加载apache 复制代码 代码如下: sudo /etc/init.d/apache2 restart 附xampp的ModRewrite开启

随机推荐