1. dtd宣告型別
內部的 doctype 宣告:
<
?xml version=
"1.0"
?>
<
!doctype note [
<
!element note (to,from,heading,body)
>
<
!element to (#pcdata)
>
<
!element from (#pcdata)
>
<
!element heading (#pcdata)
>
<
!element body (#pcdata)
>
]>
tove<
/to>
jani<
/from>
reminder<
/heading>
don't forget me this weekend<
/body>
<
/note>
外部文件宣告:假如 dtd 位於 xml 原始檔的外部,那麼它應通過下面的語法被封裝在乙個 doctype 定義中:
```c
<?xml version="1.0"?>
tove
jani
reminder
don't forget me this weekend!
note.dtd
2. dtd資料型別
pcdata 的意思是被解析的字元資料(parsed character data)。pcdata 是會被解析器解析的文字。這些文字將被解析器檢查實體以及標記。
cdata 的意思是字元資料(character data)。
cdata 是不會被解析器解析的文字。在這些文字中的標籤不會被當作標記來對待,其中的實體也不會被展開
3. dtd實體介紹
實體是用於定義引用普通文字或特殊字元的快捷方式的變數
內部實體:
外部實體:
4. xml 注入產生原理
xxe漏洞全稱xml external entity injection即xml外部實體注入漏洞,xxe漏洞發生在應用程式解析xml輸入時,沒有禁止外部實體的載入,導致可載入惡意外部檔案,造成檔案讀取、命令執行、內網埠掃瞄、攻擊內網**、發起dos攻擊等危害。
xxe漏洞觸發的點往往是可以上傳xml檔案的位置,沒有對上傳的xml檔案進行過濾,導致可上傳惡意xml檔案。
快速入門dtd
今天我們來學習一下dtd的使用以及約束。我們來說一下什麼是有效的xml文件?內容結構嚴謹遵守自身標記,能通過自身的語法檢查,通過dtd驗證的xml文件稱為有效的xml文件。dtdschema 兩者都可以用來約束xml文件,schema 比dtd強大同時難度也比dtd高一點,我們只要學習好dtd然後去...
DTD基礎入門
什麼是dtd約束 dtd與schema是用來效驗xml檔案dtd document type definition 文件型別定義,用來約束xml文件。規定xml文件中元素的名稱,子元素的名稱及順序,元素的屬性等等。什麼是良好的xml 1.有且只有乙個根元素 2.xml標籤大小寫正確區分 3.正確使用...
DTD 語法快速指南
a b c 和 d 是在下例中代表元素的變數。元素必須有正好乙個a 至少乙個b 由加號表示 零個或多個c 由星號表示 以及零個或乙個d 由問號表示 元素可能有a或b或c之一 元素不包含任何內容 元素可以包含在 dtd 中列出的任何元素 元素可能包含經過語法分析的字元資料或另乙個元素 element2...