一、XML攻击是什么?
XML攻击和SQL注入类似,XML注入是将用户输入的数据当成节点处理。
二、攻击原理
攻击前提是使用XML作为存储数据的方式,在代码对xml进行查询或者修改时,用户输入的是节点,将攻击的节点保存到xml中,从而影响到程序的运行。
例如:
String xml = "<username>"+request.getParameter("username")+"</username>"
saveXml(xml);
此时攻击在username参数中写入,张三</username><username>李四</username><username>王五。
这时候提交至程序保存,会保存三个用户,实际上我们希望的是用户输入的是一个用户。
三、如何防御
将xml标签关键字符转义,如:
lt ---- <
gt ---- >
amp ---- &
apos ---- \
quot --- ''