栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > 其他 > xml语言

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

xml语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

详细介绍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注入的示例代码的详细内容,更多请关注考高分网其它相关文章!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/794718.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号