详细介绍Web安全之XML注入的示例代码

xml注入攻击,和sql注入的原理一样,都是攻击者输入恶意的代码来执行自身权限以外的功能。 xml是存储数据的一种方式,如果在修改或者查询时,没有做转义,直接输入或输出数据,都将导致xml注入漏洞。攻击者可以修改xml数据格式,增加新的xml节点,对数据处理流程产生影响。

攻击

下面是一个保存注册用户信息为XML格式的例子:

final String GUESTROLE = "guest_role";...//userdata是准备保存的xml数据,接收了name和email两个用户提交来的数据。String userdata = ""+                request.getParameter("name")+                ""+                request.getParameter("email")+                "";//保存xmluserDao.save(userdata);

登录后复制

可以看到,这段代码没有进行任何的过滤操作。一个普通用户注册后,会产生这样一条数据记录:

    user1        user1@a.com    

登录后复制

攻击者输入自己email时,可以输入如下代码:

user1@a.comlfuser2@a.com

登录后复制

最终用户注册后,数据就变成了:

    user1        user1@a.com    lf    user2@a.com    

登录后复制

可以看到,多出了一条role=“admin_role”的管理员lf。达到攻击目的。

防御

还是那句老话,有攻击就有防御。防御的原理其实也很简单,就是对关键字符串进行转义:

& --> &   --> > " --> " ' --> '

登录后复制

在XML保存和展示之前,对数据部分,单独做转义即可:

String userdata = ""+                StringUtil.xmlencode(request.getParameter("name"))+                ""+                StringUtil.xmlencode(rrequest.getParameter("email"))+                "";

登录后复制

这样就解决啦。

以上就是详细介绍Web安全之XML注入的示例代码的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2419737.html

(0)
上一篇 2025年3月3日 02:54:08
下一篇 2025年3月1日 21:09:46

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 不是Web开发者所关注的XML基础具体分析

    XML与HTML 首先,xml与html类似的,都是一种标记语言。 当初在设计XML时,并非为了将HTML赶下神坛,实际上,XML是为了另外一种目的设计的。 XML旨在传输信息,HTML旨在显示信息 HTML可以有什么标签,不能有什么标签,…

    编程技术 2025年3月3日
    200
  • 实例详解如何配置Web.xml

    1 定义头和根元素   部署描述符文件就像所有XML文件一样,必须以一个XML头开始。这个头声明可以使用的XML版本并给出文件的字符编码。DOCYTPE声明必须立即出现在此头之后。这个声明告诉服务器适用的servlet规范的版本(如2.2或…

    编程技术 2025年3月3日
    200

发表回复

登录后才能评论