标题:DTD入门
1.DTD声明类型
主要内容:
- 内部的DOCTYPE声明:<!DOCTYPE root-element [element-declarations]>
- 外部文档声明:假如DTD位于XML源文件外部,那么他通过下面的语法被封装在一个DOCTYPE定义中:<!DOCTYPE root-element SYSTEM "filename">
2.数据类型
主要内容:
- PCDATA 被解析的字符数据(parsed character data)。PCDATA 是被解析器解析的文本。这些文本将被解析器检查实体以及标记。
- CDATA 字符数据。不会被解析器解析的文本
3.实体介绍
主要内容:
实体是用于定义引用普通文本或者特殊字符的快捷方式的变量
- 内部实体:<!ENTITY entity-name "entity-value">
- 外部实体:<!ENTITY entity-name SYSTEM"URI/URL">
4.xml注入产生原理
主要内容:
XXE漏洞(XML External Entity Injection) 即xml外部实体注入漏洞。
XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体加载,导致加载恶意外部文件,造成文件读取,命令执行,内部端口扫描,攻击内网网站,发起dos攻击等危害。
XXE触发的点往往是可以上传的xml文件的位置,没有对上传的xml文件进行过滤,导致上传恶意xml文件。