您的位置:首页 > 编程语言 > PHP开发

十一周第二次课 2017.12.26 限定某个目录禁止解析php、限制user_agent、php相关配置

2017-12-26 23:11 776 查看
11.28 限定某个目录禁止解析php



如果网站图片目录开放了上传的权限,就有可能会被用户上传php文件,而php是会被解析的,里面可能会有一些危险的函数,很有可能会中病毒。

1.限定某个目录禁止解析php方法如下:



然后我们检查错误再重启,然后测试一下



结果如下图,解析不了



2.或者我们还可以加一层访问控制FilesMatch:



然后我们检查错误再重启

下面我们来做一个测试,





结果如下图,连访问都不行



11.29 限制user_agent

防止被黑客cc攻击(使用大量的肉机同时访问)

cc攻击有一个特点,就是user_agent都是一样的,那么我们就可以限制user_agent,可以把让它的访问变成403

操作方法如下:



上图的第三四行是条件,他们中间用OR作为他们的连接符,意思是user_agent匹配上面或者下面的条件,他们是或者的关系,如果不加OR就是并且的关系,NC表示忽略大小写,

第五行后面的F表示Forbidden的意思。

添加好后我们重启测试一下:



可以看到结果是403,就是因为你的user_agent是curl



然后我们可以自定义一下user_agent:



如下结果是200



curl常用选项:-A指定user_agent、-e指定referer、-x相当于是省略了hosts、-I只查看状态码。

11.30 php相关配置



1.查看php配置文件

在网站根目录下创建index.php,



写入内容

,然后在浏览器器访问:


我们可看到它的配置文件所在目录如下图,但是并没有加载



那么我们就给它复制一个吧,去他的源码包里,





然后重启配置文件,之后在浏览器刷新就可以看到了php.ini



2.限制它的安全函数(有些木马会用到一些函数,我们可以把这些函数禁掉,木马php就没有办法解析)

在php.ini配置文件里搜索如下单词,



如下是一些比较危险的函数,将它们加入到上面单词的后面。(甚至我们还可以禁掉php.ini





然后我们可以保存重启配置文件,然后在浏览器打开测试一下,如果我们上面禁掉了php.ini的话在浏览器就打不开了,



3.定义时区

如果不定义会有一些告警信息。

做法:打开php.ini文件,搜索timezone,然后在=号后面加上时区,我们这里写上海,


4.日志相关的

做法:打开php.ini文件搜索display,然后=号后面是on的话,如果浏览器打开有错误的话会在错误信息里暴露目录,我们这里改成off,也就是说我不需要把错误信息输出到浏览器上。(如下图没有错误信息显示)



我们来使用curl试试看,也是没有任何的输出的。



但是这并不是我们想要的,所以我们要配置一个错误日志。

做法:在php.ini里搜索log_error,这个是定义它的错误日志是否开启,on是打开。

然后我们搜索error_log定义它的错误日志的路径。



同时我们还要定义它的级别,如果级别高的话它仅仅会记录一些比较严峻的错误,一些不太严峻的错误就不会记录,所以我们要把它搞得松一点。

做法:搜索error_rep,=号后面默认是E_ALL,这个是最不严谨的,生产环境中我们一般用

,但是这里我们保持默认。

然后我们来测试一下,


可以看到tmp目录下已经生成了错误日志。



然后我们来cat一下它,可以看到里面的错误日志,(显示函数被禁掉了)

11.31 php相关配置下

1.安全相关的参数:open_basedir,它的作用是一个服务器上有多个网站,如果一个网站的目录被黑,其他网站目录有可能不会被黑,就是把不同的网站目录之间做一个隔离,让黑客没有权限进另一个网站目录。及时你服务器只有一个网站也是有必要做这个设置的,这样可以防止黑客去其他目录做坏事。

做法:在php.ini里搜索open_basedir,然后在=号后面加上允许进入的目录



如下图可以访问



但是如果改成四个1,如下图就访问不了了。



2.上面这种方法只是针对于一个服务器只有一个网站的,如果多个网站就不行了,针对多个网站我们可以在apache的虚拟主机配置文件里做,



在如下位置添加这一行



这种方法我们就可以针对不同的虚拟主机限制不同的open_basedir,比如说该文件里上面还有一个虚拟主机呢,我们也同样可以把这一行放到里面去,然后我们改成把它限定在abc.com下。


这里后面都带了一个tmp目录,是因为默认的临时文件目录就是tmp。(所以tmp目录必须要有)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: