服务热线 400-660-8066

深圳网站建设
首页 站内资讯

深圳网站建设

站内资讯
深圳网站建设 / 站内资讯 / 产品资讯 / 正文

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

来源: All文章
发布时间:2024-05-31 09:12:59

  最近比较火的是微信支付接口存在XML外部实体注入漏洞(XMLExternalEntityInjection,简称XXE)。该安全问题是由XML组件默认没有禁用外部实体引用导致,黑客可以伪造一个请求让支付商户误以为订单支付了,其实订单并没有支付,这样黑客就可以0元买任何商品。

  这个漏洞是在微信支付接口通知是否支付的环节出现漏洞。主要发生在以下场景。

  场景1:支付成功通知;

  场景2:退款成功通知;

  场景3:委托代扣签约、解约、扣款通知;

  场景4:车主解约通知;

  这个漏洞影响性还是蛮大的,可以直接导致商家金钱损失,尤其是有微信支付功能模块的自动发货的系统及销售虚拟商品的商城。

  黑客能利用这个漏洞的条件有两个:

  一、知道怎么使用XML外部实体注入漏洞;(因为漏洞已经被公开,大家都知道,可恨的是很多人把攻击的方式都公开了!!!!)

  二、知道微信支付通知的地址;(这个开源建站系统因为源代码是公开的,所以基本不用猜都知道,而定制建站系统则比较难猜,所以定制建站系统还有一层防护)

  所以对于开源建站系统,源代码大家都知道,微信支付通知的地址自然是清楚了,这也暴露了很多开源建站系统的软肋,中企动力建议:做网站还是建议采用定制建站,就算出现漏洞,因为代码不开源,所以自然而然多一重安全保障。

  这个漏洞如何修补呢?

  如果是PHP网站,非常简单,一句话解决libxml_disable_entity_loader(true);

  如下代码示例:

  //将XML转为array

  functionxmlToArray($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】

  XmlDocumentdoc=newXmlDocument();

  doc.XmlResolver=null;

  微信官方也给每个商户推送了这个接口安全漏洞,也给出了各个程序语言的修复方法,APPSDK不受影响,主要还是网站。

  如果你是商家,这个漏洞还没有修复,建议财务对每一笔订单进行二次审核,通过登录微信支付管理后台查看订单数据,再次审核订单支付是否真实来决定是否发货。

  如果你是中企动力的客户,那么你不用担心,我们技术会免费为你修补这个漏洞。

  中企动力专注于网站建设、微信小程序、APP开发,目前在深圳和广州均有分公司,欢迎广大客户咨询400-660-8066!

* 文章来源于网络,如有侵权,请联系客服删除处理。
在线 咨询

添加动力小姐姐微信

微信 咨询

电话咨询

400-660-8066

我们联系您

电话 咨询
微信扫码关注动力小姐姐 X
qr