类型: 安全缺陷

    如果XML Schema中将maxOccurs值设为unbounded,当攻击者在xml中设置过多的元素,有可能会导致资源耗尽,最终导致拒绝服务。

    例如:下列配置文件中使用了将password设置为unbounded,意味着xml可以出现多个password元素。

    1. <?xml version="1.0"?>
    2. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    3. <xs:element name="User" >
    4. <xs:complexType>
    5. <xs:sequence>
    6. <xs:element name="userID" maxOccurs="1" />
    7. <xs:element name="name" maxOccurs="1" />
    8. <xs:element name="password" maxOccurs="unbounded" />
    9. <xs:element name="address" maxOccurs="1" />
    10. </xs:sequence>
    11. </xs:complexType>
    12. </xs:element>
    13. <xs:element name="name" type="xsd:string"/>
    14. <xs:element name="password" type="xsd:string"/>
    15. <xs:element name="address" type="xs:string"/>
    16. </xs:schema>