免费crm软件,东莞seo优化联系电话,建设银行 企业,vue可以做pc端网站问题#xff1a; XML 注入攻击#xff0c;和 SQL 注入的原理一样#xff0c;都是攻击者输入恶意的代码来执行自身权限以外的功能。 XML 是存储数据的一种方式#xff0c;如果在修改或者查询时#xff0c;没有做转义#xff0c;直接输入或输出数据#xff0c;都将导…问题 XML 注入攻击和 SQL 注入的原理一样都是攻击者输入恶意的代码来执行自身权限以外的功能。 XML 是存储数据的一种方式如果在修改或者查询时没有做转义直接输入或输出数据都将导 致 XML 注入漏洞。攻击者可以修改 XML 数据格式增加新的 XML 节点对数据处理流程产生影响。 攻击下面是一个保存注册用户信息为 XML 格式的例子 final String GUESTROLE guest_role; ... //userdata 是准备保存的 xml 数据接收了 name 和 email 两个用户提交来的数据。 String userdata USER role GUESTROLE name request.getParameter(name) /nameemail request.getParameter(email) /email/USER; // 保存 xml userDao.save(userdata); 可以看到这段代码没有进行任何的过滤操作。一个普通用户注册后会产生这样一条数据记录 ?xml version1.0 encodingUTF-8? USER roleguest_role nameuser1 /name emailuser1a.com /email /USER 攻击者输入自己 email 时可以输入如下代码 user1a.com/email/USERUSER roleadmin_rolenamelf/nameemailuser2a.com 最终用户注册后数据就变成了 ?xml version1.0 encodingUTF-8? USER roleguest_role nameuser1 /name emailuser1a.com/email /USER USER roleadmin_role namelf/name emailuser2a.com /email /USER 可以看到多出了一条 role“admin_role” 的管理员 lf 。达到攻击目的。 修复 对关键字符串进行转义 -- -- -- -- -- 在 XML 保存和展示之前对数据部分单独做转义即可 String userdata USER role GUESTROLE name StringUtil.xmlencode(request.getParameter(name)) /nameemail StringUtil.xmlencode(rrequest.getParameter(email)) /email/USER;