在XML文档中使用CDATA元素是否易受攻击?如果是这样,如果我们在XML文档中使用CDATA元素会发生什么?
我不知道你的'漏洞'是什么意思,但很多人用CDATA部分做错了.当懒惰的程序员不真正理解文本转义时,会发生这种情况,并试图避免&
在XML 中编码特殊字符的正常过程.他们认为他们可以逃脱:
print "";
虽然这确实会阻止一个<
或一个&
字符textstring
被视为标记,但它不是不透水的,因为textstring可能包含一个]]>
序列,导致:
I'm an unexpected element! ]]>
这是一个XML注入,像HTML注入一样可能会产生类似XSS的安全性影响.
所以你仍然需要在CDATA中转义一些序列(通常,你会]]>
在两个CDATA部分之间拆分序列).在实践中,使用CDATA不仅仅是&
以正常方式编写文本内容.所以真的没有理由使用CDATA部分.