在XML中使用CDATA元素是否容易受到攻击?

XML文档中使用CDATA元素是否易受攻击?如果是这样,如果我们在XML文档中使用CDATA元素会发生什么?
我不知道你的’漏洞’是什么意思,但很多人用CDATA部分做错了.当懒惰的程序员不能真正理解文本转义时,会发生这种情况,并试图避免在XML中正常编写特殊字符的过程.他们认为他们可以逃脱:
print "<element><![CDATA["+textstring+"]]></element>";

虽然这确实会阻止<或者& texttring中的字符被视为标记,它不是防水的,因为textstring可能包含一个]]>序列,导致:

<element><![CDATA[ Foo ]]> <bar>I'm an unexpected element!</bar> ]]></element>

这是一个XML注入,像HTML注入一样可能会产生类似XSS的安全性影响.

所以你仍然需要逃避CDATA中的一些序列(通常,你会在两个CDATA部分之间拆分]]>序列.在实践中,使用CDATA不仅仅是以正常的方式对文本内容进行编码.所以真的没有理由使用CDATA部分.

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念