11.25配置防盗链
首先说一下referer,当浏览器向wed服务器发送请求时,一般会带有referer,告诉浏览器是从哪个网页链接过来的,服务器就会根据referer来进行一些数据处理。当然,如果我们直接输入网址进行访问,referer就是空了。
根据referer就可以做一些防盗链的措施,来防止别人盗用自己的数据(一般是图片或视频)。
具体配置方法
1.编辑配置文件
#vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
添加下面的内容
<Directory /data/wwwroot/111.com>
SetEnvIfNoCase Referer "http://111.com" local_ref
SetEnvIfNoCase Referer "http://aaa.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>
整体来说就是允许111.com,aaa.com和空referer
关于SetEnvIfNoCase Referer "^$" local_ref 这个匹配空referer的做一个试验
1,访问111.com/baidu.png //可以直接访问到
2.注释掉SetEnvIfNoCase Referer "^$" local_ref
3,再次访问111.com/baidu.png //因为有缓存,要CTRL+F5强制刷新
用curl来访问,也是403
5,用qq.com来模拟referer
11.26访问控制Directoy
之前用过用户认证,可以在一定程度上提高安全性,想继续提高安全性可以设置访问控制
比如我们可以把核心配置文件设置成只允许本公司内的ip来进行访问,其他的全部拒绝
实现方法
1.编辑配置文件vhost配置文件,添加以下内容
#vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<Directory /data/wwwroot/111.com/admin/>
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>
作者:春夏love雨雪
链接:https://www.jianshu.com/p/fd9180643d9f
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
作者:春夏love雨雪
链接:https://www.jianshu.com/p/fd9180643d9f
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
//关于Order 的执行顺序,下面的两条规则都会执行(与iptables的层层过滤不一样),这里是先deny,后allow,是按order后的书写顺序来的,跟下面两行规则的书写顺序无关。
//所以最终结果是允许127.0.0.1访问
2.创建admin目录,创建index.php文件
# mkdir /data/wwwroot/111.com/admin
#touch /data/wwwroot/111.com/index.php
3.访问
# curl -x127.0.0.1:80 111.com/admin/index.php -I //因为设置的是允许源ip127.0.0.1,这里可以访问到admin目录下的内容
#tail -n5 /usr/local/apache2.4/logs/111.com-access_log_20180531 //可以看到源ip是127.0.0.1
下面换别的ip进行访问 ,这里就被拒绝了
查看以下日志,可以看到源ip是192.168.131.1的就被拒绝掉了
下面再添加一条允许192.168.131.1的规则,然后再访问一下
可以看到,这时可以访问admin目录了
11.27访问控制FilesMatch
我们也可以对特定的文件进行限制访问,只允许127.0.0.1访问
1.配置文件
#vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<Directory /data/wwwroot/111.com>
<FilesMatch admin.php(.*)>
Order deny,allow
Deny from all
Allow from 127.0.0.1
</FilesMatch>
</Directory>
2,每次改完配置文件都要检查语法重新加载
3,访问试验
# curl -x127.0.0.1:80 111.com/admin.php -I //虽然是404,但仍是可以访问的
4,用浏览器访问,拒绝,日志显示拒绝192.168.131.1ip的访问