PHP安全-信息屏蔽

信息屏蔽可以有效地防止服务器信息泄露,避免被恶意攻击者获取服务器信息,为了实行下一步攻击做准备,这些信息主要包括服务器上的操作系统更新、各种软件信息、PHP版本信息等。

屏蔽PHP错误信息

PHP的错误日志控制项可以控制PHP是否将脚本执行的error、notice、warning日志打印出来。

错误提示信息在研发过程中可以用于辅助研发人员及时发现错误并且进行修复,其中包含了很多服务端的系统信息。但在生产环境中将错误提示信息显示出来是非常危险的。虽然系统在没有漏洞的正常情况下不会出现错误提示信息。但是攻击者可能会通过提交非法的参数,诱导服务器进行报错,这样将服务端的Webserver、数据库、PHP代码部署路径甚至是数据库连接、数据表等关键信息暴露出去。通过对错误信息进行收集和整理,攻击者可以掌握服务器的配置从而更为便利地实施攻击。

如果将php.ini文件中的display_errors设置为On,那么在出程序遇到错误时将显示出错误信息。

防止版本号暴露

PHP的每个版本上都会存在漏洞,像在2015年,PHP被爆出存在远程DoS漏洞(注:DoS是Denial of Service的缩写,即拒绝服务)。DoS共计是指估计共计网络协议实现的缺陷或直接通过野蛮手段残忍的耗尽被共计对象的资源,目的是让目标计算机或网络无法提供正常的服务或访问资源,使目标系统停止响应甚至崩溃,在此攻击中并不包括侵入目标服务器或目标网络设备。

expost_php = On

如果在配置文件中进行了如上的设置,则会在HTTP请求返回的Response头部数据,HTTP头里返回服务端状态的信息,这样会包含X-Powered-By:PHP/7.2.0的版本号信息。攻击者很容易捕获此信息,一旦确定版本号。如果此版本出现漏洞,攻击者很容易将其利用。

注意:生产环境需要将expost_php 设置为Off,即关闭版本号显示。

隐藏PHP版本号,可以避免攻击者进行批量扫描,防止服务器暴露,从而降低被攻击的风险,同样可以避免攻击者通过PHP版本号来攻击PHP的固有漏洞。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200419A0N75Q00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券