11.25 配置防盗链

  • 背景:有时候我们不想让其他网站通过网站链接方式来访问位于我们网站上的文档,图片,音频等文件,这时可通过限制referer的方式来实现防盗链功能.
  • 配置防盗链的方法:
  • vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
  • 配置文件增加如下内容:
    <Directory /data/wwwroot/123.com>
    SetEnvIfNoCase Referer "http://123.com" local_ref
    SetEnvIfNoCase Referer "http://www.baidu.com" local_ref
    SetEnvIfNoCase Referer "^$" local_ref
    <FilesMatch ".(txt|doc|mp3|zip|rar|jpg|gif|png)">
    Order Allow,Deny
    Allow from env=local_ref
    </FilesMatch>
    </Directory>
    2018-3-6 Linux学习笔记
  • 以上配置的意思是仅让通过http://123.com,http://www.baidu.com 和空Referer(像直接在浏览器中输入地址来访问,不借助跳转)三种方式的访问请求能访问本站点的txt|doc|mp3|zip|rar|jpg|gif|png等文件,其他的任何访问请求均拒绝.
  • 重新加载配置文件:
    /usr/local/apache2.4/bin/apachectl -t
    /usr/local/apache2.4/bin/apachectl graceful

  • 配置后的测试:
  • (1)自定义Referer的访问测试:
    curl -e "http://123.com" -x127.0.0.1:80 -I 123.com/qq.png
    curl -e "http://www.baidu.com" -x127.0.0.1:80 -I 123.com/qq.png
  • (2)空Referer访问测试:
    curl -x127.0.0.1:80 -I 123.com/qq.png
    2018-3-6 Linux学习笔记

11.26 访问控制Directory

  • 背景:有时候我们网站有些内容,比如后台管理页面,为安全故,不想外部访问,这时我们可通过访问控制Directory(限制源IP)的方法只让源IP为内部的访问通过,其他的统统拒绝.
  • 配置访问控制Directory的方法:
  • vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
  • 配置文件增加如下内容:
    <Directory /data/wwwroot/www.123.com/admin/> #配置访问控制的目标目录
    Order deny,allow #是否能访问的顺序(最终能否访问靠这一行)
    Deny from all
    Allow from 127.0.0.1 #控制对象为来源IP
    </Directory>
    2018-3-6 Linux学习笔记
  • 重新加载配置文件:
    /usr/local/apache2.4/bin/apachectl -t
    /usr/local/apache2.4/bin/apachectl graceful
  • 配置后的测试:
    2018-3-6 Linux学习笔记
    curl测试状态码为403,说明被限制访问了.

11.27 访问控制FilesMatch

  • 访问控制FilesMatch和访问控制Directory的功能类似,不同点在于FilesMatch控制的是更小范围层面(文件)的访问控制.
  • 配置访问控制FilesMatch的方法:
  • vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
  • 配置文件增加如下内容:
    <Directory /data/wwwroot/123.com>
    <FilesMatch "admin.php(.*)">
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
    </FilesMatch>
    </Directory>
    2018-3-6 Linux学习笔记
  • 重新加载配置文件:
    /usr/local/apache2.4/bin/apachectl -t
    /usr/local/apache2.4/bin/apachectl graceful
  • 配置后的测试:
    2018-3-6 Linux学习笔记

扩展学习:
几种限制ip的方法 http://ask.apelearn.com/question/6519
apache 自定义header http://ask.apelearn.com/question/830
apache的keepalive和keepalivetimeout http://ask.apelearn.com/question/556