微信支付接口存在XML解析安全漏洞

2023-02-28    分类: 网站建设


最近比较火的是微信支付接口存在XML外部实体注入漏洞(XML External Entity Injection,简称 XXE)。该安全问题是由XML组件默认没有禁用外部实体引用导致,黑客可以伪造一个请求让支付商户误以为订单支付了,其实订单并没有支付,这样黑客就可以0元买任何商品。
这个漏洞是在微信支付接口通知是否支付的环节出现漏洞。主要发生在以下场景。
场景1:支付成功通知;
场景2:退款成功通知;
场景3:委托代扣签约、解约、扣款通知;
场景4:车主解约通知;
这个漏洞影响性还是蛮大的,可以直接导致商家金钱损失,尤其是有微信支付功能模块的自动发货的系统及销售虚拟商品的商城。
黑客能利用这个漏洞的条件有两个:

一、知道怎么使用XML外部实体注入漏洞;(因为漏洞已经被公开,大家都知道,可恨的是很多人把攻击的方式都公开了!!!!)
二、知道微信支付通知的地址;(这个开源建站系统因为源代码是公开的,所以基本不用猜都知道,而定制建站系统则比较难猜,所以定制建站系统还有一层防护)
所以对于开源建站系统,源代码大家都知道,微信支付通知的地址自然是清楚了,这也暴露了很多开源建站系统的软肋,创新互联建议:做网站还是建议采用定制建站,就算出现漏洞,因为代码不开源,所以自然而然多一重安全保障。
这个漏洞如何修补呢?
如果是PHP网站,非常简单,一句话解决libxml_disable_entity_loader(true);
如下代码示例:

//将XML转为array
function xmlToArray($xml) {
//禁止引用外部xml实体 libxml_disable_entity_loader(true);
$values = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
return $values;
}
如果是ASP.NET网站
【.Net】
XmlDocument doc= new XmlDocument();
doc.XmlResolver = null;
微信官方也给每个商户推送了这个接口安全漏洞,也给出了各个程序语言的修复方法,APP SDK 不受影响,主要还是网站。
如果你是商家,这个漏洞还没有修复,建议财务对每一笔订单进行二次审核,通过登录微信支付管理后台查看订单数据,再次审核订单支付是否真实来决定是否发货。
如果你是创新互联的客户,那么你不用担心,我们技术会免费为你修补这个漏洞。
创新互联专注于网站建设、微信小程序、APP开发,目前在成都和广州均有分公司,欢迎广大客户咨询400-028-6601!

分享名称:微信支付接口存在XML解析安全漏洞
本文地址:https://www.cdcxhl.com/news/240264.html

成都网站建设公司_创新互联,为您提供全网营销推广移动网站建设自适应网站企业网站制作网站内链企业建站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

搜索引擎优化