关于PHP项目的安全配置—Hack之路

关于PHP项目的安全配置
1.信息屏蔽
信息屏蔽可以有效防止服务器的信息泄露,避免被攻击者获取服务器信息并为下一步攻击做准备,这些信息包括服务器的操作系统,版本,及各种配置信息,因此我们需要屏蔽此类信息

PHP的错误日志控制项可以控制PHP是否将脚本执行的error,notice,warning日志打印出来。错误提示信息在研发过程中可以用于辅助研发人员及时发现错误并改正并且进行修复,如果将这些信息给hack看见也是非常危险的,虽然系统在没有漏洞的情况下不会出现错误提示信息,但攻击者可能通过提交非法代码和字符诱导服务器进行报错。这样将把服务端的WebServer,数据库,php代码部署路径甚至是数据库数据表等关键信息暴露出去。

如图
关于PHP项目的安全配置---Hack之路

这个提示暴露了程序的系统和路径,很容易被攻击者利用来了解服务器的目录结构。可以通过修改PHP配置文件和源码框架文件将提示信息隐藏

常规网站关闭方法:配置文件-/etc/php.ini下
;Default Value:On                 ;默认开启
;Development Value:On       ;研发环境开启
;production Value:Off           ;生成环境关闭
;display_errors = Off            ;如果是生成环境,这里应该设定为Off,避免将错误信息展示给用户
;error_log=/val/log/php/error_log.log;            指定日志写入路径

在生产环境中,display_errors一般要设置为Off,不要暴露错误信息给用户;研发的时候可设置为On。最好的方式是将所有的错误信息记录在日志中,方便查看

2.防止版本号暴露
2015年5月20日,PHP被爆出存在DOS漏洞。若攻击者利用该漏洞构造非法请求发起连接,容易导致目标主机CPU被迅速消耗导致泵机

漏洞产生的的原因是PHP在解析HTTP中的multipart/form-data格式数据时,会不断的重复复制字符串导致DOS。远程攻击者可以通过发送恶意构造的multipart/form-data请求,导致服务器CPU资源被消耗殆尽,从而导致服务器无法做出正常响应,此漏洞涉及众多PHP版本,因而影响范围极大
受该漏洞影响的PHP版本号如下。
PHP 5.0.0—5.0.5
PHP 5.1.0—5.1.6
PHP 5.2.0—5.2.17
PHP 5.3.0—5.3.29
PHP 5.4.0—5.4.40
PHP 5.5.0—5.5.24
PHP 5.6.0—5.6.8

这些版本的PHP很容易被攻击者进行DOS攻击。攻击者要利用该漏洞,首先要知道服务器的版本号

在默认配置下,PHP版本号显示是开启状态,expose_php设置值为On,默认将PHP的版本号返回到HTTP请求的头部信息中,因此,建议在生产环境中隐藏PHP版本号, 在PHP配置文件中查找expose_php,将值设置为Off,PHP的版本显示关闭

 

网站地址:https://www.hackzl.cn;发布者:hack之路,转转请注明出处:https://www.hackzl.cn/index.php/2020/09/09/%e5%85%b3%e4%ba%8ephp%e9%a1%b9%e7%9b%ae%e7%9a%84%e5%ae%89%e5%85%a8%e9%85%8d%e7%bd%ae-hack%e4%b9%8b%e8%b7%af/

发表评论

邮箱地址不会被公开。 必填项已用*标注