php教程菜鸟教程
一次性付费进群,长期免费索取教程,没有付费教程。进微信群回复公众号:微信群;QQ群:460500587 教程列表 见微信公众号底部菜单 | 本文底部有推荐书籍
微信公众号:计算机与网源码络安全ID:Computer-network经历多年的发展,PHP自身的安全机制也在不断完善,PHP环境部署完成后,通常还会进行一些安全设置研发人员除熟悉各种PHP漏洞外,还可以通过修改PHP配置文件源码来加固PHP的运行环境。
当配置好PHP的Web运行环境后,通常需要修改配置来达到安全目的在优化配置、增强性能的同时,正确地配置PHP可以避免很多安全问题修改PHP的配置,一般是修改php.ini文件如源码果是Windows系统,一般在所安装的PHP目录中可以找到该文件;如果是Linux系统,一般在/etc/php配置路径下可以找到该文件。
找到文件所在的位置并打开文件以后,修改对应的选项值,保存文件,然源码后重启Web运行环境,即可完成修改信息屏蔽可以有效地防止服务器信息泄露,避免被恶意攻击者获取服务器信息,为实行下一步攻击做准备这些信息主要包括服务器信息上的操作系统更新、各种软件信息、PHP版本信息等源码。
1、屏蔽PHP错误信息PHP的错误日志控制项可以控制PHP是否将脚本执行的error、notice、warning日志打印出来错误提示信息在研发过程中可以用于辅助研发人员及时发现错误并且进行修复,其源码中包含了很多服务端的系统信息,但在生产环境中将错误提示信息显示出来是非常危险的。
虽然系统在没有漏洞的正常情况下不会出现错误提示信息,但攻击者可能会通过提交非法的参数,诱导服务器进行报错,这样将把服务端源码的WebServer、数据库、PHP代码部署路径甚至是数据库连接、数据表等关键信息暴露出去。
通过对错误信息进行收集和整理,攻击者可以掌握服务器的配置从而更为便利地实施攻击如图1所示,在配置文件中设置d源码isplay_errors=On开启了PHP错误显示,在PHP程序遇到错误时,如下的错误信息会被打印在页面上。
Notice: Undefined index: search in \home\web\源码php\index.php on line 3
图1 开启PHP错误显示这个提示信息暴露了程序和系统的路径,很容易被攻击者利用来了解服务器的目录结构可以通过修改PHP配置文件将提示信息隐藏,配置文件通源码常在/etc/php.ini下,具体修改方式如下。
; Default Value: On ; 默认开启; Development Value: On ; 研发环境开启; Production Va源码lue: Off ; 生成环境关闭; http://php.net/display-errors
error_reporting=E_ALL & ~E_NOTICE & ~E_DEPRECATEDdi源码splay-errors=Off ; 如果是生成环境,这里应该设定为Off,避免将错误提示信息展示给用户
error_log=/var/log/php/error_log.log ; 指定日志写入路径源码在生产环境中,display_errors一般要设置为Off,不要暴露错误信息给用户;研发的时候,可以设置为On。
最好的方式是将所有PHP的错误信息记录在日志中,以方便查看2、防止版本号暴露2015年源码5月20日,PHP被爆出存在远程DoS漏洞若攻击者利用该漏洞构造非法请求发起连接,容易导致目标主机CPU被迅速消耗,使服务器宕机,影响正常业务。
漏洞产生的原因是PHP在解析HTTP中的multipar源码t/form-data格式数据时,会不断地重复复制字符串导致DoS远程攻击者可以通过发送恶意构造的multipart/form-data请求,导致服务器CPU资源被耗尽,从而导致服务器无法响应正常请求源码。
此漏洞涉及众多PHP版本,因而影响范围极大受该漏洞影响的PHP版本号如下PHP 5.0.0—5.0.5PHP 5.1.0—5.1.6PHP 5.2.0—5.2.17PHP 5.3.0—5.3.29P源码HP 5.4.0—5.4.40。
PHP 5.5.0—5.5.24PHP 5.6.0—5.6.8这些版本的PHP很容易被攻击者进行DoS攻击攻击者要利用该漏洞,首先要知道服务器上的PHP版本号在默认配置源码情况下,PHP版本号显示是开启状态,expose_php设置值为On,默认将PHP的版本号返回到HTTP请求的头部信息中,如图2所示。
图2 PHP版本号显示开启图3所示是一个HTTP请求返回的Res源码ponse头部数据,HTTP头里返回服务端状态的信息其中X-Powered-By:PHP/7.2.0的版本号暴露无遗,攻击者很容易捕获此信息。
一旦该版本的PHP存在漏洞,攻击者很容易将其利用
图3 H源码TTP头中显示PHP版本因此,建议在生产环境中隐藏PHP版本号,在PHP配置文件中查找expose_php,将值设置为Off,PHP的版本显示关闭,如图4所示。
图4 在PHP配置中关闭PHP版本显示源码隐藏PHP的版本号,可以避免攻击者进行批量扫描,防止服务器暴露,从而降低被攻击的风险线上环境应该隐藏PHP版本号,通过修改PHP的配置文件,将expose_php的值设置为Off,如图5所示。
图5 源码通过配置将PHP版本号隐藏设置为Off后,PHP会将当前的PHP版本号进行隐藏,防止恶意攻击者通过定位PHP的版本号来利用PHP的固有漏洞微信公众号:计算机与网络安全ID:Computer-netwo源码rk。
【推荐书籍】
亲爱的读者们,感谢您花时间阅读本文。如果您对本文有任何疑问或建议,请随时联系我。我非常乐意与您交流。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。