DTD快速入門

2021-10-19 14:13:54 字數 1365 閱讀 6029

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...