centos7 访问php页面显示源码_PHP安全:敏感信息泄露

3c4eb25624dab738a797693efe541866.png

文章来源:计算机与网络安全

不少PHP项目中没能正确地保护敏感数据,如某些信用卡、用户ID和身份验证凭据Token。攻击者可能会窃取或者篡改这些数据以进行诈骗、身份窃取或其他非法操作。敏感数据需额外保护,要在存放、传输过程中进行必要的加密,以及在与浏览器交换时实施特殊的预防措施。防止恶意用户获取其他合法用户的隐私数据,甚至通过获取服务器中的敏感数据达到控制服务器的目的。敏感数据的不正确保护主要体现在以下几点。

(1)敏感数据存储时未加密,常见的有密码、身份证、信用卡明码保存在数据库中。

(2)用户敏感数据在传输过程中采用明文传输,密码未经加密直接发送到服务端。

(3)使用旧的或脆弱的加密算法等,只进行简单的MD5计算。

1、登录密码泄露

在用户输入登录密码从浏览器传输到服务器的过程中没有使用数字摘要进行加密,攻击者对数据进行拦截或者抓包,造成明文密码泄露,从而获取用户的明文密码。在身份验证时传输的用户名和密码等应当加密处理后再进行传输。

2、登录信息泄露

如果在需要身份验证的Web上都没有使用SSL加密,攻击者只需监控网络数据流(比如一个开放的无线网络),并窃取一个已通过验证的用户会话Cookie,然后利用这个Cookie执行重放攻击并接管用户的会话,就可访问用户的隐私数据。为了防止重放攻击,可以在验证时加个随机数,以保证验证单次有效。

3、资源遍历泄露

资源遍历泄露是指,在接口传入的参数中存在资源ID类参数,ID为递增整数且权限控制不当将导致资源被遍历。为了防止这种情况,例如用户上传的文件ID、用户ID、企业ID、商品ID、订单ID等,尽量不使用连续的ID序号。表1所列为资源遍历泄露风险点。

b6ea96b031c9693f004372ad6eb57955.png

表1  资源遍历泄露风险点列举

4、物理路径泄露

当攻击者通过接口输入非法数据时,导致服务器端应用程序出现错误,并返回网站物理路径。攻击者利用此信息,可通过本地文件包含漏洞直接得到webshell。系统上线后应当关闭PHP的错误输出,防止调试信息泄露,或者当应用程序出错时,统一返回一个错误页面或直接跳转至首页。

通过PHP配置关闭错误显示如下。

#php.ini

error_reporting=E_ALL & ~E_DEPRECATED & ~E_STRICT // 错误类型

display_errors=off // 禁止错误显示
display_startup_errors=off // 禁用display_startup_errors设置防止PHP的启动过程中被显示给用户的特定错误

PHP程序代码中关闭错误显示如下。

ini_set('display_errors',false); // 关闭错误显示

ini_set('error_reporting',E_ALL&~E_NOTICE&~E_WARNING); // 设置日志记录类型

5、程序使用版本泄露

如果传送大量的数据时,应用程序报错并返回应用程序版本,攻击者可利用此信息,查找官方漏洞文档,并利用现有exploit code实施攻击。

Apache关闭版本号显示如下。

# http.conf

ServerTokens Prod

ServerSignature off #设置为off禁止显示版本号

PHP关闭版本号显示如下。

expose_php = Off   # 设置为Off禁止显示版本号

Nginx关闭版本号显示如下。

# nginx.conf

server_tokens off # 设置为Off禁止显示版本号

6、JSON劫持导致用户信息泄露

QQ Mail曾经曝出相关漏洞,比如通过构造URL让用户访问,可以获得QQ Mail的邮件列表。该漏洞由于需要在Web QQ里共享QQ Mail里的邮件信息,因此QQ Mail开放了一个JSON接口以提供第三方的域名来获得QQ Mail的信息,但是由于该接口缺乏足够的认证,因此导致任何第三方域名都可以用Script的方式来获取该邮件列表。

尽量避免跨域的数据传输,对于同域的数据传输使用XMLHttp的方式作为数据获取方式,通过JavaScript在浏览器域里的安全性保护数据。如果是跨域的数据传输,必须对敏感的数据获取进行权限认证,例如对referer的来源进行限制、加入Token等。

7、源代码泄露

攻击者可利用程序扩展名解析缺陷,访问隐藏的文件,并获取源代码,或者通过程序BUG,直接返回源代码,获取重要数据,进而实施下一步攻击。因此,要合理设置服务器端各种文件的访问权限。

由于经常要对代码进行上线、备份、移动等操作,往往会疏忽文件管理而造成源码泄露,所以需要定期在Web能访问到的目录下警惕以下几类文件的出现,如出现,应及时删除,以防范源码泄露。

.git

.svn

.bak

.rar

.zip

.7z

.tar.gz

.swp

.txt

.html

cbcbbcd063d1094b5aa8c7d4b0b0a7d9.png

推荐阅读

bfd03d2508075d0cbcbd1d833ecd3893.png c458d9e154bff7a0d8b788853a630269.png

*PHP安全:组件漏洞防护

*PHP编码安全:请求伪造攻击

*PHP安全:文件包含安全

47e2af90ed04100f2bffb77678ab22c9.png

                                                                        1575e3b5d404dce3fa2fa1be90c3fc4e.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值