2018.3.6 11周1次课

十一周一次课(3月6日)

11.25 配置防盗链
11.26 访问控制Directory
11.27 访问控制FilesMatch

11.25 配置防盗链

通过限制referer来实现防盗链的功

防盗链,通俗讲,就是不让别人盗用你网站上的资源。这个资源,通常指的是图片、视频、歌曲、文档等。referer是指:你通过A网站的一个页面http://a.com/a.html里面的链接去访问B网站的的一个页面http://b.com/b.html,那么这个B网站页面的referer就是http://a.com/a.html。也就是说,一个referer其实就是一个网址,即前一个被访问页面的 URL,是来源网址

编辑虚拟机主机配置文件:vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<Directory /data/wwwroot/111.com>    //定义防盗链目录:本站点

SetEnvIfNoCase Referer "http://111.com" local_ref     //定义Referer白名单:111.com

SetEnvIfNoCase Referer "http://aaa.com" local_ref

SetEnvIfNoCase Referer "^$" local_ref     //"^$"表示空,当直接在浏览器里输入图片地址去访问它时,它的referer就为空。定义空也是白名单

<filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif|png)">      //定义需要保护的文件类型,当访问这些类型的文件时就会被限制。

Order Allow,Deny     //定义访问控制的顺序,先允许后拒绝

Allow from env=local_ref    //允许白名单的referer,其它deny

</filesmatch>

</Directory>

测试:用curl命令

-e/--referer <URL> 为 HTTP 数据包指定 Referer Page 信息,即前一个被访问页面的 URL。通常这个信息被服务器用于判断自己是否被盗链,如果发现服务器端有这样的检测机制,则可以使用该参数绕过检测。

使用-e来定义referer,这个referer一定要以http://开头,否则不管用

-I/--head    只接收 response数据包中 header 字段的内容。即只显示 HTTP 头,而不显示文件内容

不在白名单里网址:使用非允许的referer会返回403的状态码

在白名单里网址:

查看日志:tail /usr/local/apache2.4/logs/111.com-access_20180306.log

11.26 访问控制Directory

対于一些比校重要的网站内容,除了可以使用用户认证限制访同之外,込可以通其他一些方法做到限制,比如可以限制IP ,也可以限制user_agent。限制IP指的是限制访问网站的来源IP ,而限制 user-agent ,通常用来限制恶意或者不正常的请求。

<Directory /data/wwwroot/111.com/admin/>

Order deny,allow

Deny from all

Allow from 127.0.0.1

</Directory>

使用くDirectory>来指定要限制访问的目录。order定义控制顺序,哪个在前面就先匹配哪个規則。在本例中deny在前面,所以先匹配Deny from all ,这样所有的来源IP都会被限制,然后匹配Allow from 127.0.0.1 ,这祥又允许了127.0.0.1这个IP。最终的效果是,只允许来源IPカ127.0.0.1的访问。

测试环境:

用curl命令:我们限制的是源IP,而-x后面是目标IP

访问日志

本机有两个IP,一个是192.168.37.101,一个是127.0.0.1,通过这两个IP都可以访问到站点。 而来源IP分别为192.168.37.101和127.0.0.1, 其实和本机IP是一样的。

浏览器访问提示Forbidden, 其实就是403。再来看日志,可以查看到对应的来源IP,192.168.37.1,希望你不要把来源IP和本机IP搞混了。前面的实验中之所以本机IP和来源一样,就是因为它相当于自己访问 自己。而后面用浏览器访问,相当于拿Windows机器访问Linux服务器

curl测试状态码为403则被限制访问了

11.27 访问控制FilesMatch

可以单独针对某个文件来做限制

核心配置文件内容

<Directory /data/wwwroot/111.com>

<FilesMatch  "admin.php(.*)">

Order deny,allow

Deny from all

Allow from 127.0.0.1

</FilesMatch>

</Directory>

状态码:404  //没有对admin做限制,所以允许访问,但找不到网页

状态码:403   //无法访问,因为做了限制

上图因为有特殊符号?,所有http://111.com/admin.php?要加上单引号

状态码:404   //127.0.0.1是允许的访问

原文地址:http://blog.51cto.com/415326/2083585

时间: 2024-10-02 02:51:53

2018.3.6 11周1次课的相关文章

2018.3.7 11周2次课

十一周二次课(3月7日) 11.28 限定某个目录禁止解析php 11.29 限制user_agent 11.30/11.31 php相关配置 11.28 限定某个目录禁止解析php 对于使用PHP语言编写的网站,有一些目录是有需求上传文件的,比如在前面列举的那个防盗链案例,因为服务器可以上传图片,并且没有做防盗链,所以被人家当成了一个图片存储服务器,并且盗用带宽流量.如果网站代码有漏洞,让黑客上传了一个用PHP代码写的木马,由于网站可以执行PHP程序,最终会让黑客拿到服务器权限.为了避免这种情

2018.3.1 10周2次课

十周第二次课(3月1日) 11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机 11.14/11.15 Apache和PHP结合 配置httpd支持php httpd主配置文件/usr/local/apache2.4/conf/httpd.conf vim /usr/local/apache2.4/conf/httpd.conf   //修改以下4个地方 ServerName 搜索ServerName,把#ServerName www.example

2018.1.9 5周2次课

五周第二次课(1月9日) 7.6 yum更换国内源 7.7 yum下载rpm包 7.8/7.9 源码包安装 7.6 yum更换国内源 1.恢复之前备份的文件 2. 进入"/etc/yum.repos.d"目录 3.删除"CentOS-Base.repo"文件 4.下载"163.repo"文件 wget http://mirrors.163.com/.help/CentOS7-Base-163.repo curl -O http://mirrors

2018.1.16 6周2次课

六周第二次课(1月16日) 9.4/9.5 sed 9.4/9.5 sed 其实grep工具的功能还不够强大,它实现的只是查找功能,而不能把查找的内容替换.以前用vim操作文档的时候,可以查找也可以替换, 但只限于在文本内部操作,而不能输出到屏幕上.sed工具以及后面要介绍的awk工具就能把替换的文本输出到屏幕上,而且还有其他更丰富的功能.sed和awk都是流式编辑器,是针对文档的行来操作的. sed  '/x/'p filename:匹配x字符 sed  -n  '/x/'p  filenam

2018.4.23 17周4次课

十七周4次课(4月23日) 20.20 告警系统主脚本 20.21 告警系统配置文件 20.22 告警系统监控项目 20.20 告警系统主脚本 创建告警系统的目录: [[email protected] /usr/local/sbin]# mkdir mon [[email protected] /usr/local/sbin]# ls mon  nginx_log_rotate.sh [[email protected] /usr/local/sbin]# cd mon [[email pro

2018.1.12 5周5次课

五周第五次课(1月12日) 8.10 shell特殊符号cut命令 8.11 sort_wc_uniq命令 8.12 tee_tr_split命令 8.13 shell特殊符号下 8.10 shell特殊符号cut命令 1. 特殊符号 * 任意个任意字符 *代表零个或多个任意字符 ? 任意一个字符 ?只代表一个任意的字符 # 注释字符 表示注释说明,即#后面的内容都会被忽略 \ 脱义字符 这个字符会将后面的特殊符号 (如*) 还原为普通字符 | 管道符 这个字符前面曾多次出现过,它的作用是将前面

2018.02.26 9周4次课

九周第四次课(2月26日) 11.1 LAMP架构介绍 11.2 MySQL.MariaDB介绍 11.3/11.4/11.5 MySQL安装 11.1 LAMP架构介绍 MySQL.MariaDB介绍 MySQL是一个关系型数据库,由mysql ab公司开发,mysql在2008年被sun公司收购(10亿刀),2009年sun公司被oracle公司收购(74亿刀) MySQL官网https://www.mysql.com  最新版本5.7GA/8.0DMR MySQL5.6变化比较大,5.7性

2018.2.27 9周5次课

九周第五次课(2月27日) 11.6 MariaDB安装 11.7/11.8/11.9 Apache安装 11.6 MariaDB安装 cd /usr/local/src 下载二进制安装包:wget https://downloads.mariadb.com/MariaDB/mariadb-10.2.6/bintar-linux-glibc_214-x86_64/mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz 解压安装包:tar -zxvf mariad

2018.2.28 10周1次课

十周第一次课(2月28日) 11.10/11.11/11.12 安装PHP5 11.13 安装PHP7 11.10/11.11/11.12 安装PHP5 关于PHP版本,目前大多企业都会使用5.4及更高版本,甚至越来越多的企业使用PHP7版本.7和5两个版本还是有很大差异的,据说7版本有很大的性能提升,但7版本还是太新了,很多企业的网站不一定能兼容.新事物取代旧事物是必然趋势,所以在后续的学习和工作中,建议你要与时俱进,敢于尝试.在本实验中,使用的PHP版本为5.6,PHP的官方下载地址为 :