利用apache伪静态技术防止盗链

(在我们制作网站的过程中,可能会遇到这样的问题,就是其他的网站直接盗用了我们网站的图片或css或js,这样可能会大大增加我们自己网站的负载。

所以,我们应该考虑一下怎样防止这样的事情发生。)

下面我们来模拟一个防盗链的情况:

比如我们的网站下面有一个publicimage目录和一个privateimage目录,其中publicimage目录可以让别人访问,而privateimage目录只能自己访问。

我们应该怎样去实现呢?

我们能想到的方法是:利用apache伪静态技术完成,那应该怎样去做了,下面我们介绍两种方式:

(apache虚拟主机域名的配置,以及rewrite组件的开启和".htaccess"文件配置我这里就不说了,大家可以到网上搜索,这些东西不是很难哈。)

第一种方式,修改.htaccess文件配置(.htaccess文件是分别放在publicimage和privateimage文件夹下哈)

在privateimage文件夹中的.htaccess文件中写入:

Order deny, allow

deny from all

allow from 127.0.0.1

以上代码表示,先查看deny,在查看allow

决绝所有的访问,但是允许本地访问。

咋一看我们似乎是解决了我们上面说过的问题,但是这样的设置有一个bug,就是比如我们本地的apache配置了两个域名分别为:www.panchao.com和www.test.com。而需要控制的上面两个文件夹存在于www.panchao.com这个域名下,但是就上面的.htaccess规则来说,我们使用www.test.com域名去访问privateimage文件夹中的图片也是没问题的。这就和我们的想法相悖了,我们希望只有www.panchao.com这个域名能够访问privateimage文件夹下的图片。由此我们引出了第二种防盗链方式。

第二种方式,也是修改.htaccess文件配置,但和第一种方式的配置很不一样。

在privateimage文件夹中的.htaccess文件中写入:

<ifModule rewrite_module>

RewriteEngine On

#我们怎么知道,请求就是www.panchao.com发来的呢? 使用 http的 referer头信息

#如果你请求的是一个jpg图片, 就禁止

RewriteCond %{HTTP_REFERER} !www.panchao.com

RewriteRule .*\.jpg -[F]

</ifModule>

以上代码代表的意思就是:

首先是rewrite引擎开启

然后,我们判断发出请求的HTTP_REFERER是不是www.panchao.com,如果不是,那么访问.jpg文件的请求就被禁止。

tips:虽然上面的技术能够实现防盗链,但是这些东西归根结底是人写出来的,如果有人就是想盗链,比如他修改了请求的HTTP_REFERER,还是能够进行盗链的,这就需要我们在处理这些问题的时候想的更周全一点。

但是,我觉得,如果我们做到了上面的设置,防止90%以上的盗链是没有问题的哈,有时候不要太较真!!!

原文地址:https://www.cnblogs.com/573734817pc/p/10107543.html

时间: 2024-10-10 15:21:17

利用apache伪静态技术防止盗链的相关文章

Apache安全优化之防盗链

通常防盗链是为了防止图片,视频等信息被盗用.下面我将利用一个小实验模拟盗链与防盗链,实验用到如下两张图片:提供网站服务的主机我做了DNS解析,是使用域名www.benet.com 进行访问的客户机IP地址:192.168.100.30/24,盗链机IP地址:192.168.100.11/241.首先需要手工编译安装Apache,详细步骤可参考我之前手工编译安装Apache的博客:http://blog.51cto.com/13641879/21093422.安装前准备环境需要比之前多安装这个软件

页面静态化3 --- 伪静态技术之Apache的rewrite机制

  Apache的rewrite机制: 意思就是,你发送的地址,比如:http://localhost/news-id67.html会被Apache改写成http://localhost/news.php?id=67; Apache本身内置了一个模块:(httpd.conf) #LoadModule rewrite_module modules/mod_rewrite.so ---- 去掉注释,开启Apache内置的重写模块开启模块过后,这个模块把news-id67.html重写为news.ph

转:【译】Asp.net MVC 利用自定义RouteHandler来防止图片盗链

[译]Asp.net MVC 利用自定义RouteHandler来防止图片盗链 你曾经注意过在你服务器请求日志中多了很多对图片资源的请求吗?这可能是有人在他们的网站中盗链了你的图片所致,这会占用你的服务器带宽.下面这种方法可以告诉你如何在ASP.NET MVC中实现一个自定义RouteHandler来防止其他人盗链你的图片. 首先,我们来回顾一下当一个请求发往ASP.net MVC站点时的情景,IIS收到请求并将请求转到ASP.net,然后根据URL,或者更确切来说:被请求文件的扩展名.在IIS

Apache伪静态(Rewrite).htaccess文件详解

Htaccess(超文本访问)是一个简单的配置文件,它允许设计师,开发者和程序员通过它来改变Apache Web服务器的配置.这些功能包括用户重定向.URL重写(url rewrite,国内很多称为伪静态).目录密码保护.现在我们开始-- 1 建立并上传一个.htaccess文件建立一个.htaccess文件很简单,我们使用一个类似windows的记事本或者notpad++都可以,然后把"自动换行"功能关闭,然后写入一些字后保存文件.比如,我们可以起名为:htaccess.txt上传到

php如何防止图片盗用/盗链的两种方法(转)

图片防盗链有什么用? 防止其它网站盗用你的图片,浪费你宝贵的流量.本文章向大家介绍php防止图片盗用/盗链的两种方法 Apache图片重定向方法 设置images目录不充许http访问 Apache服务器下防止图片盗链的办法 如果你的网站以图片为主,哪天发现月底没到流量就快用光了,那就可以利用图片转向,在不修改网页的前提下,把图片下载请求转向到其它空间(比如试用主机),临时过渡. (详细请点击)http://www.cnblogs.com/myhomepages/p/6017867.html

反盗链

盗链是指服务提供商自己不提供服务的内容,通过技术手段绕过其它有利益的最终用户界面(如广告),直接在自己的网站上向最终用户提供其它服务提供商的服务内容,骗取最终用户的浏览和点击率.受益者不提供资源或提供很少的资源,而真正的服务提供商却得不到任何的收益. 网站盗链会大量消 耗被盗链网站的带宽,而真正的点击率也许会很小,严重损害了被盗链网站的利益.早期的盗链一般是一些比较小的网站盗取一些有实力的大网站的地址,盗链的目 标比较有针对性,现如今,一些大型的网站也已经开始把盗链的目光锁定在了整个互联网上,窃

apache web服务器与防盗链的设置

一.安装apache2.4.23 新版本的httpd-2.4新增以下特性: 新增模块: mod_proxy_fcgi(可提供fcgi代理) mod_ratelimit(限制用户带宽) mod_request(请求模块,对请求做过滤) mod_remoteip(匹配客户端的IP地址) 对于基于IP的访问控制做了修改,不再支持allow,deny,order机制,而是统一使用require进行 还新增以下几条新特性: 1.MPM支持在运行时装载;不过要开启这种特性,在编译安装要启用这三种功能: --

php如何防止图片盗用/盗链的两种方法

如今的互联网,采集网站非常多,很多网站都喜欢盗链/盗用别人网站的图片,这样不仅侵犯网权,还导致被盗链的网站消耗大量的流量,给服务器造成比较大的压力,本文章向大家介绍php如何防止图片盗用/盗链的两种方法,需要的朋友可以参考一下. 图片防盗链有什么用? 防止其它网站盗用你的图片,浪费你宝贵的流量.本文章向大家介绍php防止图片盗用/盗链的两种方法 Apache图片重定向方法 设置images目录不充许http访问 Apache服务器下防止图片盗链的办法 如果你的网站以图片为主,哪天发现月底没到流量

Asp.Net Core 通过中间件防止图片盗链

一.原理 要实现防盗链,我们就必须先理解盗链的实现原理,提到防盗链的实现原理就不得不从HTTP协议说起,在HTTP协议中,有一个表头字段叫referer,采用URL的格式来表示从哪儿链接到当前的网页或文件.换句话说,通过referer,网站可以检测目标网页访问的来源网页,如果是资源文件,则可以跟踪到显示它的网页地址.有了referer跟踪来源就好办了,这时就可以通过技术手段来进行处理,一旦检测到来源不是本站即进行阻止或者返回指定的页面.如果想对自己的网站进行防盗链保护,则需要针对不同的情况进行区