防止有人利用网站文件上传的功能,把一些静态媒体资源放到咱们的网站上,而后在他们的网站上设置这些资源的连接到咱们的网站上,当他们网站用户访问这些资源时,就会跳转到咱们的服务器上,致使咱们的服务器带宽流量异常增大。为了防止这种状况发生,咱们利用apache服务器访问控制实现防盗链功能。php
在httpd-vhosts.conf配置文件下进行设定:apache
<Directory /data/wwwroot/111.com> SetEnvIfNoCase Referer "http://www.111.com" local_ref //指定referer白名单 SetEnvIfNoCase Referer "http://111.com" local_ref //指定referer白名单 SetEnvIfNoCase Referer "^$" local_ref //空的referer也能访问 <FilesMatch "\.(txt|doc|mp3|zip|rar|jpg|gif)"> //使用文件匹配访问控制 Order Allow,Deny //访问控制顺序,先容许后拒绝。 Allow from env=local_ref //只有符合白名单上的referer才能访问111.com目录。 </FilesMatch> </Directory>
验证效果。服务器
curl -e “www.111.com” -x127.0.0.1:80 www.111.com/logo.jpg -I //-e选项是指定referer进行访问。
公司的内部网站能够设置访问控制,指定来源IP才可以访问curl
在httpd-vhosts.conf配置文件下进行设定:网站
<Directory /data/wwwroot/111.com> // 指定须要访问控制的网站的目录 Order deny,allow //访问控制的顺序,先全部都拒绝,而后再容许指定的ip。和iptables不一样,能够所有规则都执行下去。 Deny from all // 拒绝全部的来源ip Allow from 127.0.0.1 //指定容许访问的来源ip(指定网段也能够192.168.0.0/24) </Directory>
除了对整个网站的目录进行访问控制外,还能够对网站的指定某一个页面进行访问控制,例如只有指定的来源ip才可以访问后台管理的页面。url
也是在httpd-vhosts.conf配置文件下进行设定:code
<FilesMatch "admin.php(.*)"> //指定须要访问控制的页面 Order deny,allow //访问控制的顺序,先全部都拒绝,而后再容许指定的ip Deny from all // 拒绝全部的来源ip Allow from 127.0.0.1 //指定容许访问的来源ip(指定网段也能够192.168.0.0/24) </FilesMatch>