1,配置防盗链。
防盗链就是让别人不能盗用你网站上的资源,通常指的是图片、视频、歌曲、文档等。
referer概念:用A网站的一个页面a去访问B网站的一个页面b,那么B网站页面的referer就是页面a。也就是说referer是一个网址。
编辑配置文件加入如下内容,vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
SetEnvIfNoCase Referer "http://www.123.com" local_ref
SetEnvIfNoCase Referer "http://123.com" local_ref
SetEnvIfNoCase Referer "^$" local_ref
Order Allow,Deny
Allow from env=local_ref
首先自定义允许访问链接的referer,其中^$为空referer,当直接再浏览器里输入图片地址去访问它时,它的referer就为空。然后又使用filesmatch来定义需要保护的文件类型,访问txt、doc、mp3、zip、rar、jpg、gif格式的文件,当访问这样类型的文件时就会被限制。
实验:
先注释SetEnvIfNoCase Referer "^$" local_ref这一行,这样我们就点击http://www.123.com/123.jpg就会提示Forbidden错误。
在csdn博客中发一个帖子,把www.123.com/123.jpg做成超链接。
接着在配置文件中加入如下内容:
SetEnvIfNoCase Referer "https://blog.csdn.net" local_ref
重新加载配置。
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
在博客中点击超链接,跳转到http://www.123.com/123.jpg,看到图片正常显示。
2,访问控制Directory。
对于一些比较重要的网站,除了使用用户认证之外限制访问之外,还可以通过一些其它的方法做到限制,比如可以限制IP也可以限制user_agent。限制IP指的是限制访问网站的来源IP,限制user_agent通常用来限制恶意或者不正常的请求。
限制IP,编辑配置文件vim /usr/local/apache2/conf/extra/httpd-vhosts.conf,改成如下内容:
Order deny,allow
Deny from all
Allow from 127.0.0.1
使用
重新加载配置:/usr/local/apache2/bin/apachectl -t;/usr/local/apache2/bin/apachectl graceful
验证过程:
# mkdir /data/wwwroot/www.123.com/admin/ //创建目录
# echo "admin" > /data/wwwroot/www.123.com/admin/index.html //在目录下创建文件并写入内容
# > /usr/local/apache2/logs/www.123.com-access_20180602.log //清空当天的访问日志
# curl -x127.0.0.1:80 www.123.com/admin/index.html -I //自己访问自己
HTTP/1.1 200 OK
Date: Sat, 02 Jun 2018 15:40:32 GMT
Server: Apache/2.4.33 (Unix) PHP/5.6.32
Last-Modified: Sat, 02 Jun 2018 15:37:50 GMT
ETag: "6-56daa7ba9e668"
Accept-Ranges: bytes
Content-Length: 6
Cache-Control: max-age=0
Expires: Sat, 02 Jun 2018 15:40:32 GMT
Content-Type: text/html
# curl -x192.168.177.130:80 www.123.com/admin/index.html -I //本机IP访问
HTTP/1.1 403 Forbidden
Date: Sat, 02 Jun 2018 15:51:36 GMT
Server: Apache/2.4.33 (Unix) PHP/5.6.32
Content-Type: text/html; charset=iso-8859-1
查看日志。
# tail /usr/local/apache2/logs/www.123.com-access_20180602.log
127.0.0.1 - - [02/Jun/2018:23:51:30 +0800] "HEAD HTTP://www.123.com/admin/index.html HTTP/1.1" 200 - "-" "curl/7.29.0"
192.168.177.130 - - [02/Jun/2018:23:51:36 +0800] "HEAD HTTP://www.123.com/admin/index.html HTTP/1.1" 403 - "-" "curl/7.29.0"
用浏览器分别访问http://www.123.com和http://www.123.com/admin/index.html,前者正常,后者Forbidden。
3,访问控制FilesMatch。
编辑配置文件为如下:
Order deny,allow
Deny from all
Allow from 127.0.0.1
重新加载配置文件。