xml

xml不安全

billion laughs / exponential entity expansion

DoS攻击 利用xml解析器通常将整个文档存入内存,使用递归引用,消耗大量内存

quadratic blowup entity expansion

类似billion laughs但只是重复引用单实例,不递归

external entity expansion

解析时引入外部资源或本地文件,解析时会嵌入到xml文件中

DTD retrieval

利用文件的类型定义来引入文件,和external entity expansion类似

decompression bomb

通过压缩大文件,解析器解析出文件放入内存,过大崩溃

库的支持

所有库都能防止billion laughs和quadratic blowup

etree库

不解析external entities,会抛出异常

dom库中minidom

对于external entities原样返回

dom库中pulldom

在python3.7.1之后也原样返回

xmlrpclib

忽略external entities,但是不能防止decompression bomb

defusedxml

纯python实现的,可防止所有问题

defusedexpat

你可能感兴趣的:(xml)