day 44 Apache访问控制

本文介绍了如何使用Apache配置防盗链功能,通过限制referer防止第三方网站非法引用。详细步骤包括编辑虚拟主机配置文件,设置白名单,检查配置语法,并通过curl命令进行测试验证防盗链的效果。

11.25 配置防盗链

  • 通过限制referer来实现防盗链的功能, 防盗链的作用是,某一特定网站的文件(比如图片),只能通过本网站或设置为白名单referer的网站去访问,其他第三方网站借用不行
  • 虚拟主机配置文件/usr/local/apache2.4/conf/extra/httpd-vhosts.conf增加如下内容
  <Directory /data/wwwroot/www.123.com>
        SetEnvIfNoCase Referer "http://www.123.com" local_ref #将第三方站点加入到referer白名单
        SetEnvIfNoCase Referer "http://123.com" local_ref
        SetEnvIfNoCase Referer "^$" local_ref #将空referer加入到白名单,空referer指直接访问目标内容,不经过第三方网站(referer)跳转
        <FilesMatch "\.(txt|doc|mp3|zip|rar|jpg|gif)">
            Order Allow,Deny
            Allow from env=local_ref
        </FilesMatch>
    </Directory>
  • curl -e "http://www.aminglinux.com/123.html" #自定义referer
11.26 访问控制Directory

  • 编辑虚拟主机配置文件,配置内容如下:
  <Directory /data/wwwroot/www.123.com/admin/>
       Order deny,allow #访问控制的顺序,先deny,再allow
        Deny from all #先deny,此时包括源IP是127.0.0.1的所有IP均被deny
        Allow from 127.0.0.1 #后allow,此时源IP若是127.0.0.1则又被allow
   </Directory>
  • /usr/local/apache2.4/bin/apachectl –t                                 #检查配置文件的语法
  • /usr/local/apache2.4/bin/apachectl graceful                       #重新加载配置 
  • curl -x127.0.0.1:80 /www.123.com/admin/index.php          #curl命令测试,命令中“-x”后面的127.0.0.1是目标IP,要访问该目标IP,那么源IP同样需要是127.0.0.1,状态码为200 OK
  • curl -x127.0.0.1:80 /www.123.com/admin/aaa                                                   #如果admin子目录下并不存在aaa文件,那么测试状态码为404(Not Found)
  • curl -x192.168.127.150:80 /www.123.com/admin/index.php -I                          #此时目标IP是192.168.127.150,那么访问该目标IP的源IP是192.168.127.131(通过检查日志可查看到源IP),此时状态码是403(Forbidden),被限制访问了
11.27 访问控制FilesMatch

  • 虚拟主机配置文件配置内容如下:
<Directory /data/wwwroot/www.123.com>
    <FilesMatch  "admin.php(.*)">
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1
    </FilesMatch>
</Directory>
  • /usr/local/apache2.4/bin/apachectl –t                                                #检查配置文件的语法
  • /usr/local/apache2.4/bin/apachectl graceful                                      #重新加载配置 
  • curl -x127.0.0.1:80 '/www.123.com/admin.php?safgjfhdg' -I             #curl命令测试,因不存在文件admin.php?safgjfhdg,故状态码为404(Not Found),已经允许访问,只是被访问的文件不存在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值