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>
以上配置的意思是仅让通过 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
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>
重新加载配置文件:
- /usr/local/apache2.4/bin/apachectl -t
- /usr/local/apache2.4/bin/apachectl graceful
配置后的测试:
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>
重新加载配置文件:
- /usr/local/apache2.4/bin/apachectl -t
- /usr/local/apache2.4/bin/apachectl graceful
配置后的测试:
扩展学习:
几种限制 ip 的方法 http://ask.apelearn.com/question/6519
apache 自定义 header http://ask.apelearn.com/question/830
apache 的 keepalive 和 keepalivetimeout http://ask.apelearn.com/question/556
来源: http://www.bubuko.com/infodetail-2516505.html