当前位置: 首页
编程语言
Apache如何配置防盗链

Apache如何配置防盗链

热心网友 时间:2026-05-02
转载

在Apache服务器上配置防盗链,可以通过以下几种方法实现

Apache如何配置防盗链

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

网站资源被随意盗用,不仅消耗服务器带宽,还可能带来安全风险。好在Apache服务器提供了几种成熟的防盗链方案,可以根据实际需求灵活选择。下面就来详细拆解这几种主流方法。

方法一:使用mod_rewrite模块

这是最经典、最常用的防盗链手段,核心思路是通过检查请求的来源(Referer)来判断是否放行。

  1. 启用mod_rewrite模块:首先,得确保服务器上的这个“引擎”已经启动。通常,执行下面两条命令就能搞定:

    sudo a2enmod rewrite
    sudo systemctl restart apache2
  2. 配置防盗链规则:规则一般写在网站根目录的.htaccess文件里。添加的内容大致如下:

    RewriteEngine On
    # 允许的域名列表
    RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.com [NC]
    RewriteCond %{HTTP_REFERER} !^http://(www\.)?anotherdomain\.com [NC]
    # 阻止访问
    RewriteRule \.(jpg|jpeg|png|gif)$ - [F,L]

    这几行代码是什么意思呢?简单来说:

    • RewriteEngine On:这是开关,表示启动重写功能。
    • 那两行以RewriteCond开头的:它们像两个“门卫”,检查来访者的“介绍信”(HTTP_REFERER)。只有来自example.comanotherdomain.com的请求才会被放行,[NC]表示忽略大小写。
    • RewriteRule这一行:是最终的“裁决”。如果请求的图片(如.jpg, .png等)不符合前面的白名单条件,就直接返回403禁止访问的状态码,[F,L]中的L表示这是最后一条规则。

方法二:使用mod_security模块

如果你需要一个功能更强大的Web应用防火墙(WAF),那么mod_security是个不错的选择。它不仅能防盗链,还能防御更多复杂攻击。

  1. 安装mod_security模块:如果系统里还没有,可以通过包管理器安装。例如在Debian/Ubuntu上:

    sudo apt-get install libapache2-mod-security2
  2. 配置防盗链规则:规则需要添加到ModSecurity的配置文件中,比如/etc/modsecurity/modsecurity.conf。一条基础的防盗链规则看起来是这样的:

    SecRule REQUEST_FILENAME "\.(jpg|jpeg|png|gif)$" \
    "id:123456,\
    phase:2,\
    deny,\
    status:403,\
    log,\
    msg:'Access to image files is denied'"

    我们来解读一下这条规则:

    • SecRule REQUEST_FILENAME "\.(jpg|jpeg|png|gif)$":定义触发条件,即请求的文件名是否以指定的图片格式结尾。
    • id:123456:给规则一个唯一的编号,方便管理和排查。
    • phase:2:指定规则在请求处理的哪个阶段执行,phase:2是请求头部处理完成后。
    • denystatus:403:明确动作是拒绝请求,并返回403状态码。
    • logmsg:表示记录日志,并附上指定的提示信息。

方法三:使用X-Frame-Options

这个方法严格来说不算传统意义上的防盗链,但它能有效防止一种常见的资源滥用——点击劫持。通过设置一个HTTP响应头,可以控制页面能否被嵌入到其他网站的框架(iframe)中。

配置起来非常简单,同样是在.htaccess文件中加入一行:

Header always set X-Frame-Options "SAMEORIGIN"

这个指令的含义很直接:X-Frame-Options: SAMEORIGIN。它告诉浏览器,只允许同源(即相同域名、协议和端口)的页面用iframe嵌入当前页面。这样一来,其他网站就无法随意“框住”你的页面了。

注意事项

无论选择哪种方案,有几个通用的原则需要牢记:

  • 语法检查是关键:修改Apache配置文件或.htaccess后,务必使用apachectl configtest或类似命令测试语法,一个拼写错误就可能导致服务无法启动。
  • 先测试,再上线:尤其是在生产环境,强烈建议先在测试环境中验证规则效果,确保不会误伤正常的访问或引用(比如来自搜索引擎、内部服务的合法请求)。
  • 规则需要维护:安全不是一劳永逸的。随着网站域名变更或出现新的资源滥用方式,记得定期回顾和更新你的防盗链规则。

综合运用以上方法,可以很好地为Apache服务器上的资源建立起一道防护墙,有效管理资源访问权限,提升网站的整体安全性。

来源:https://www.yisu.com/ask/38998807.html

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
Composer如何统计项目中不用的依赖包_利用分析工具精简代码【瘦身指南】

Composer如何统计项目中不用的依赖包_利用分析工具精简代码【瘦身指南】

Composer如何统计项目中不用的依赖包_利用分析工具精简代码【瘦身指南】 composer-unused 能准确识别未使用的包吗 答案是:不能完全准确,但它确实是目前最实用的静态分析工具。它的工作原理并不复杂:扫描项目里 src 和 tests 目录下的 PHP 文件,找出所有的 use 语

时间:2026-05-03 09:29
Composer如何快速同步生产环境包_使用--no-dev选项安装【生产规范】

Composer如何快速同步生产环境包_使用--no-dev选项安装【生产规范】

生产环境必须用 composer install --no-dev,否则会混入phpunit等dev包引发安全与性能问题;需搭配--optimize-autoloader、--classmap-authoritative、--no-interaction等参数,并确保composer lock纯净。

时间:2026-05-03 09:29
VSCode如何开启平滑滚动效果 - 提升长代码阅读体验的隐藏开关设置

VSCode如何开启平滑滚动效果 - 提升长代码阅读体验的隐藏开关设置

VSCode平滑滚动需手动启用且分区域控制:编辑器用 "editor smoothScrolling ",列表类用 "list smoothScrolling ";动画失效常见于配置位置错误、系统自然滚动冲突、GPU加速禁用或窗口恢复后状态延迟。 先说一个关键事实:VSCode的平滑滚动效果默认是关闭的,必

时间:2026-05-03 09:29
Composer怎么管理多环境配置_Composer如何区分开发测试和生产环境的依赖安装【指南】

Composer怎么管理多环境配置_Composer如何区分开发测试和生产环境的依赖安装【指南】

生产环境必须加--no-dev,否则会强制安装PHPUnit、PHPStan等dev包,导致体积膨胀、启动变慢、暴露调试入口甚至fatal error;其生效前提为composer lock不含dev包记录。 在生产环境执行 composer install 时,如果漏掉 --no-dev 参数,后

时间:2026-05-03 09:29
Composer提示无法读取 auth.json 中的凭证_检查文件编码与权限【认证排查】

Composer提示无法读取 auth.json 中的凭证_检查文件编码与权限【认证排查】

Composer认证排查:当auth json“沉默”失效时,如何精准定位问题? 你是否遇到过这种情况:composer install 时,明明配置了 auth json,系统却依然提示需要认证,或者干脆静默地回退到了匿名访问?问题往往就出在这个小小的认证文件上。今天,我们就来深入聊聊几个最隐蔽、

时间:2026-05-03 09:29
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 日榜
  • 周榜
  • 月榜
热门教程
更多
  • 游戏攻略
  • 安卓教程
  • 苹果教程
  • 电脑教程