千家信息网

Apache 防盗链小结

发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,Apache 防盗链小结Apache 防盗链的第一种实现方法,可以用 rewrite 实现。一. 遭遇图片盗链国内网站盗链成风,最倒霉的就是咱们这种使用付费主机有流量限制的个人了。没办法,只得加上了一
千家信息网最后更新 2025年02月23日Apache 防盗链小结

Apache 防盗链小结

Apache 防盗链的第一种实现方法,可以用 rewrite 实现。

一. 遭遇图片盗链


  国内网站盗链成风,最倒霉的就是咱们这种使用付费主机有流量限制的个人了。没办法,只得加上了一个简单的反盗链(Anti-Leech)措施。我的服务器是 Apache,处理防盗链比较简单。 也欢迎各位光临小弟的论坛,记忆碎片www.debris.cn,希望大家多多指导!

二. 使用 rewrite 技术实现 Apache 防盗链 (拒绝后跳转到指定页面)
  Apache 防盗链的第一种实现方法,可以用 rewrite 实现。首先要确认 Apache 的 rewrite module 可用:能够控制 Apache httpd.conf 文件的,打开 httpd.conf,确保有这么一行配置:


代码如下:


LoadModule rewrite_module modules/mod_rewrite.so


然后在找到自己网站对应的 配置的地方,加入下列代码:


代码如下:


ServerName debris.cn
# 防盗链配置
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://debris.cn/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://debris.cn$ [NC]

RewriteCond %{HTTP_REFERER} !^http://www.debris.cn/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.debris.cn$ [NC]
RewriteRule .*\.(gif|jpg|swf)$ http://www.debris.cn/about/nolink.png [R,NC]


防盗链配置的说明

  1. 红色部分: 表示自己的信任站点。对我的站点来说,设置为 http://www.debris.cn和 http://debris.cn

  2. 绿色部分: 要保护文件的扩展名(以|分开)。以这些为扩展名的文件,必须通过红色标注的网址引用,才可以访问。

  3. 蓝色部分: 盗链后的重定向页面。用以输出警示信息,这张图片应该尽可能的小。为了简单处理的原因,我的绿色字体部分,要保护的图片扩展中,没有 .png 的图片,而警示图片是 .png的。

  然后重新启动 apache 服务器即可。

  有些用户使用的是虚拟主机,没有服务器的控制权,无法修改 httpd.conf 文件和重启服务器。那么请确认你的虚拟主机支持 .htaccess,将上面的配置写入 .htaccess 文件,放入根目录或图片所在的目录即可:


代码如下:


.htaccess 文件的内容:
# 防盗链配置
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://debris.cn/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://debris.cn[NC]
RewriteCond %{HTTP_REFERER} !^http://www.debris.cn*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.debris.cn$ [NC]
RewriteRule .*\.(gif|jpg|swf)$ http://www.debris.cn/about/nolink.png [R,NC]


注意:

1、httpd.conf 文件里的配置,是在 apache 启动时一次读取,效率很高
2、.htaccess 文件里的配置,每次访问都需要读取分析,效率很低。

三. 使用 SetEnvIfNoCase 和 access 技术实现 Apache 防盗链 (直接拒绝)

另一种方式是利用 SetEnvIfNoCase 和 access。具体的代码如下:


代码如下:


SetEnvIfNoCase Referer "^http://debris.cn"local_ref=1
SetEnvIfNoCase Referer "^http://www.debris.cn" local_ref=1

Order Allow,Deny
Allow from env=local_ref


将上述代码,放入前面所讲的 httpd.conf 或 .htaccess 文件即可。

四. Apache 防盗链的技术小结

  通过判断 referer 变量的值,判断图片或资源的引用是否合法,只有在设定范围内的 referer,才能访问指定的资源,从而实现了防盗链(Anti-Leech)的目的。需要指出的是:不是所有的用户代理(浏览器)都会设置 referer 变量,而且有的还可以手工修改 referer,也就是说,referer 是可以被伪造的。本文所讲的,只是一种简单的防护手段。当然,应付一般的盗链也足够了。

欢迎大家访问记忆碎片 www.debris.cn ,在碎片中寻找你的记忆!

防盗 文件 配置 代码 图片 服务器 部分 服务 主机 技术 碎片 小结 变量 扩展名 效率 方法 用户 站点 红色 绿色 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发实训每日 海蜇兽数码兽数据库 金山区自动化软件开发项目信息 海南海口个人软件开发维护 数据库强制访问策略 河南青桔网络技术有限公司拼多多 虹口区常规网络技术服务批发价格 平谷区数据网络技术开发售后服务 aws 数据库怎么连接 主动网络安全技术是啥 华为软件开发云周宇 全国统一数据库查询 图灵采购商大数据库 行政机关网络安全应急演练方案 深圳crm软件开发 沈阳软件开发专业哪个学校好 学软件开发可以找什么工作 服务器系统安全加固方法 csgo不限速连跳服务器 电脑带网络安全模式不能联网 redis 做内存数据库 武汉棋牌游戏软件开发 合肥点餐系统软件开发定制 web程序发布到服务器的流程 三和网络技术有限公司 软件开发课程以及行业要求 软件开发不朽照片 动态更新数据库数据库表 数字媒体和网络技术哪个好就业 学软件开发一年学费大概多少
0