2019独角兽企业重金招聘Python工程师标准>>>

1.8.8 配置防盗链

通过限制referer来实现防盗链的功能
配置文件增加如下内容
<Directory /data/wwwroot/111.com>
SetEnvIfNoCase Referer "http://www.111.com" local_ref
SetEnvIfNoCase Referer "http://111.com" local_ref
SetEnvIfNoCase Referer "^$" local_ref
<filesmatch ".(txt|doc|mp3|zip|rar|jpg|gif)"> //定义规则:
Order Allow,Deny //order定义访问控制
Allow from env=local_ref
</filesmatch>
</Directory>
curl -e "http://www.aminglinux.com/123.html" 自定义referer
这个是我在开源中国定义的referer跳转!
↑抱歉,我发现 回帖加链接不知道为啥浏览器防盗链没有效果了!禁止空白referer访问还是有效果的(待研究)

查看了日志之后,我发现 日志里面并没有记录到referer,用其他回帖网站 也没有看到referer,下次在研究这个咯!

编辑配置:

[root@Dasoncheng ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>DocumentRoot "/data/wwwroot/111.com"ServerName www.111.comServerAlias 111.comSetEnvIfNoCase Referer "http://www.111.com" local_ref
#       SetEnvIfNoCase Referer "www.oschina.net" local_ref
#       SetEnvIfNoCase Referer "^$" local_ref  <filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif)">Order Allow,DenyAllow from env=local_ref</filesmatch>ErrorLog "logs/111.com-error_log"CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/111.com-access_%Y%m%d.log 86400" combined
</VirtualHost>
[root@Dasoncheng ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@Dasoncheng ~]# /usr/local/apache2.4/bin/apachectl graceful

测试效果:

[root@Dasoncheng ~]# curl -e "http://www.oschina.net" www.111.com/luds.jpg -I
HTTP/1.1 403 Forbidden    ##403遇到的第三个web反馈!
……
[root@Dasoncheng ~]# curl www.111.com/luds.jpg -I
HTTP/1.1 403 Forbidden
……
##以上使用referer和空referer都不能访问,必须是www.111.com为referer才能访问这个.jpg
##为什么使用浏览器 回帖指定offerer都可以


再次编辑并测试!

[root@Dasoncheng ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>DocumentRoot "/data/wwwroot/111.com"ServerName www.111.comServerAlias 111.comSetEnvIfNoCase Referer "http://www.111.com" local_refSetEnvIfNoCase Referer "www.oschina.net" local_ref  SetEnvIfNoCase Referer "^$" local_ref  <filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif)">Order Allow,DenyAllow from env=local_ref</filesmatch>ErrorLog "logs/111.com-error_log"CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/111.com-access_%Y%m%d.log 86400" combined
</VirtualHost>
[root@Dasoncheng ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@Dasoncheng ~]# /usr/local/apache2.4/bin/apachectl graceful
[root@Dasoncheng ~]# curl -e "http://www.oschina.net" www.111.com/luds.jpg -I
HTTP/1.1 200 OK
[root@Dasoncheng ~]# curl www.111.com/luds.jpg -I
HTTP/1.1 200 OK
##防盗链访问成功!

1.8.9 访问控制Directory

核心配置文件内容
<Directory /data/wwwroot/111.com/admin/>
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>
curl测试状态码为403则被限制访问了。

编辑配置:

##首先,上面修改的日志记录 修改后记得还原!(.jpg不记录日志)
[root@Dasoncheng ~]# mkdir -p /data/wwwroot/111.com/admin
[root@Dasoncheng ~]# vim /data/wwwroot/111.com/admin/index.php
[root@Dasoncheng ~]# cat /data/wwwroot/111.com/admin/index.php
<?php
echo "This page is forbidden;\n"
?>
[root@Dasoncheng ~]# curl -x192.168.60.11:80 www.111.com/admin/index.php
This page is forbidden;    ##成功访问!
[root@Dasoncheng ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>DocumentRoot "/data/wwwroot/111.com"ServerName www.111.comServerAlias 111.com<Directory /data/wwwroot/111.com/admin/>Order deny,allowDeny from allAllow from 127.0.0.1</Directory>ErrorLog "logs/111.com-error_log"CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/111.com-access_%Y%m%d.log 86400" combined
</VirtualHost>
[root@Dasoncheng ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@Dasoncheng ~]# /usr/local/apache2.4/bin/apachectl graceful

测试访问:

[root@Dasoncheng ~]# curl -x192.168.60.11:80 www.111.com/admin/index.php -I
HTTP/1.1 403 Forbidden    ##使用192.168.60.11访问失败,127.0.0.1却可以访问;
[root@Dasoncheng ~]# curl -x127.0.0.1:80 www.111.com/admin/index.php -I
HTTP/1.1 200 OK

再次修改测试:

[root@Dasoncheng ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>DocumentRoot "/data/wwwroot/111.com"ServerName www.111.comServerAlias 111.com<Directory /data/wwwroot/111.com/admin/>Order deny,allowDeny from allAllow from 127.0.0.1Allow from 192.168.60.0/24</Directory>ErrorLog "logs/111.com-error_log"CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/111.com-access_%Y%m%d.log 86400" combined
</VirtualHost>
[root@Dasoncheng ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@Dasoncheng ~]# /usr/local/apache2.4/bin/apachectl graceful
[root@Dasoncheng ~]# curl -x192.168.60.11:80 www.111.com/admin/index.php -I
HTTP/1.1 200 OK    ##这里已经可以访问了哦!!

小提示: 关于/etc/hosts和curl命令。
如果访问一个本地域名,如果hosts文件里面没有解析的话 那么我们如何用curl访问呢?
1、直接访问ip:http://192.168.60.12
2、使用curl -x192.168.60.12:80 www.111.com 命令访问(这样就相当于指定了域名的ip,但是ip后面需要接端口号,不然默认访问的是1080端口)
还有:
访问本地站点:
curl -x127.0.0.1:80 那么他就用127.0.0.1这个ip来访问该地址!
curl -x192.168.60.11:80 则默认用192.168.60.11来访问!(前提是访问本地站点)

1.8.10 访问控制FilesMatch

核心配置文件内容
<Directory /data/wwwroot/111.com>
<FilesMatch "admin.php(.*)"> //等一下用正则写看看能不能用!
Order deny,allow
Deny from all
Allow from 127.0.0.1
</FilesMatch>
</Directory>

编辑配置并测试:

[root@Dasoncheng ~]# curl www.111.com/admin.php -I
HTTP/1.1 200 OK
[root@Dasoncheng ~]# curl www.111.com/admin/admin.html -I
HTTP/1.1 200 OK
[root@Dasoncheng ~]# curl www.111.com/index.php -I
HTTP/1.1 200 OK
[root@Dasoncheng ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>DocumentRoot "/data/wwwroot/111.com"ServerName www.111.comServerAlias 111.com<Directory /data/wwwroot/111.com><FilesMatch "admin.*">Order deny,allowDeny from allAllow from 127.0.0.1</FilesMatch></Directory>ErrorLog "logs/111.com-error_log"CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/111.com-access_%Y%m%d.log 86400" combined
</VirtualHost>
[root@Dasoncheng ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@Dasoncheng ~]# /usr/local/apache2.4/bin/apachectl graceful
##测试↓:
[root@Dasoncheng ~]# curl www.111.com/admin.php -I
HTTP/1.1 403 Forbidden
[root@Dasoncheng ~]# curl www.111.com/admin/admin.html -I
HTTP/1.1 403 Forbidden
[root@Dasoncheng ~]# curl www.111.com/index.php -I
HTTP/1.1 200 OK
##访问文件,并用正则限制成功了哦!

apache日志记录代理IP以及真实客户端IP http://www.lishiming.net/thread-960-1-1.html
apache只记录指定URI的日志 http://www.lishiming.net/thread-981-1-1.html
apache日志记录客户端请求的域名 http://www.lishiming.net/thread-1037-1-1.html
apache 日志切割问题 http://www.lishiming.net/thread-566-1-1.html
几种限制ip的方法 http://www.lishiming.net/thread-6519-1-1.html
apache 自定义header http://www.aminglinux.com/bbs/thread-830-1-1.html
apache的keepalive和keepalivetimeout http://www.aminglinux.com/bbs/thread-556-1-1.html

转载于:https://my.oschina.net/u/3651233/blog/1623622

1.8.8 配置防盗链相关推荐

  1. LNMP - Nginx配置防盗链

    配置防盗链的目的:当别的网站盗用了我们网站的图片,视频等文件资源,放到他们自己的网站上去,一方面这属于无耻的盗窃行为,另一方面在并发量很大的情况下势必会无端增加我们网站的流量,增加服务器的负载. 解决 ...

  2. Nginx配置防盗链

    Nginx配置防盗链 进入Nginx配置文件: [root@LHQ vhosts]# vim test.conf server { listen 80; server_name www.test.co ...

  3. 配置防盗链、 访问控制Directory 、访问控制FilesMatch

    2019独角兽企业重金招聘Python工程师标准>>> 5月31日任务 11.25 配置防盗链 11.26 访问控制Directory 11.27 访问控制FilesMatch 扩展 ...

  4. Apache(httpd)配置--防盗链配置和访问控制

    一.配置防盗链 通过防盗链的方式,可以设置限制第三方的站点通过引用的方式获取服务器上的图片,数据等,如果想要获取本站点的图片数据,只能通过本站点访问获取,这样也有效的减少了服务器的资源. 什么是ref ...

  5. Linux centosVMware Apache 配置防盗链、访问控制Directory、访问控制FilesMatch

    一.配置防盗链 通过限制referer来实现防盗链的功能 配置文件增加如下内容 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //改为如下 ...

  6. 在Apache上配置防盗链功能和隐藏版本号

    文章目录 在Apache上配置防盗链功能 安装DNS服务 配置http服务软件目录 开启服务 开启服务 源站进行防盗链操作 隐藏版本信息步骤 使用抓包工具查看版本信息 隐藏设置 在Apache上配置防 ...

  7. LAMP架构(七)配置防盗链,访问控制

    2019独角兽企业重金招聘Python工程师标准>>> 配置防盗链 通过限制referer来实现防盗链的功能 配置文件增加如下内容 <Directory /data/wwwro ...

  8. Apache网页优化 ---配置防盗链

    防盗链概述 防盗链就是防止别人的网站代码里面盗用服务器的图片文件.视频等相关资源.如果别人盗用网站的这些静态资源,明显的是会增大服务器的带宽压力.所以作为网站的维护人员,要杜绝我们服务器的静态资源被其 ...

  9. Nginx配置——防盗链

    ## 编辑配置文件 [root@wy ~]# vim /usr/local/nginx/conf/vhosts/test.conf location ~ .*\.(gif|jpg|jpeg|png|b ...

最新文章

  1. Java 异步与同步的区别
  2. 放弃Maven以后,我用了它。。。
  3. Sentry--错误日志收集框架
  4. 一文讲透 “进程、线程、协程”
  5. Person matching query does not exist;Django增删改查异常
  6. 机器学习笔记:PCA的简单理解以及应用建议
  7. 论ACM ICPC_Ruins He
  8. C语言1094题目,基于visual Studio2013解决C语言竞赛题之1094纵横图
  9. C/C++基础语法复习(一):C++与C语言的区别,主要有这些!
  10. (转)Delaunay三角剖分
  11. P30年订单或超2000万 正与苹果抢流水线
  12. python生成词云_词云制作没那么难,Python 10 行代码就实现了!
  13. java date timezoneoffset_Java TimeZone getOffset()用法及代码示例
  14. 用了几年的 Fastjson,我最终替换成了Jackson!
  15. 【存档】双向可控硅的工作原理
  16. python3--输入厘米转为英寸英寸
  17. kdj超卖_KDJ超买超卖指标正确用法
  18. 午饭加喝酸奶可减轻电脑辐射
  19. python教学小说05 宽容之心,是容纳世界的神奇变量。
  20. Python性能优化

热门文章

  1. 分析大量壹米滴答物流揽收后是否有物流的实例步骤
  2. Typroa+picgo+github出现RequestError: Error: unable to verify the first certificate (未解决)
  3. MySQL按天统计一周没有数据补0
  4. android官方自带下拉刷新功能
  5. js截取图片 裁剪图片之cropper.js插件用法详解
  6. 跨职能流程图_大数据优化:跨职能集成是否关键?
  7. 实战整理-阿里天池淘宝用户购物行为数据集实战(MySQL数据分析+Navicat)
  8. “二码合一”健康码和行程码一次出示即可
  9. [收藏|转贴]货币金额大写转换库(C#)
  10. 小程序识别企业微信二维码功能