訓練
模組
Work with XMLports in Dynamics 365 Business Central - Training
Learn how to define and use XMLports in AL, understand different nodes and properties, and apply them in AL code.
XML 讀取器是 XML 輸入來源上的游標。 XML 讀取器一次讀取一個 XML 節點 ,但還有額外的協助程式 API,讓讀取一連串的節點更容易。
支援下列類型的讀取器輸入:
讀取器會確認元素上存在的屬性是唯一的。 執行此驗證所需的時間是元素上屬性數目的函式,其大小可WS_XML_READER_PROPERTY_MAX_ATTRIBUTES。 因此,當 WS_XML_READER_PROPERTY_MAX_ATTRIBUTES 設定為大數值時,處理大型檔可能會造成拒絕服務攻擊的機會。
讀取器會將前置詞對應至每個元素和屬性的命名空間。 執行此對應所需的時間是範圍中 xmlns 屬性數目的函式,其範圍可能比 WS_XML_READER_PROPERTY_MAX_NAMESPACES大。 因此,當此屬性設定為大型值時,處理大型檔可能會造成拒絕服務攻擊的機會。
雖然讀者會確保檔遵循 xml 的文法規格,而且其層面也位於指定的配額內,但是當來自不受信任的來源時,檔的內容仍必須被視為不受信任。 讀取器的使用者應該使用 WsReadToStartElement、 WsFindAttribute或手動檢查 節點來檢查所有元素和屬性名稱和命名空間。
需要考慮的一些其他情況包括,但不限於:
讀取器的使用者不應該只根據從檔讀取的值來配置記憶體。 例如,請考慮下列 xml 檔:
<array count='1000000'>
<!-- malicious document provider didn't actually provide 1000000 array items -->
</array>
根據假設會遵循某些元素數目的假設,配置陣列是潛在的攻擊媒介。 在此情況下,讀取器的使用者應該改為以累加方式配置記憶體,因為元素出現。
XML 讀取器不支援 DTD。 讀取器的使用者不需要擔心 DTD 驗證。
下列回呼會與 XML 讀取器搭配使用:
下列列舉會與 XML 讀取器搭配使用:
下列函式會與 XML 讀取器搭配使用:
下列控制碼會與 XML 讀取器搭配使用:
下列結構會與 XML 讀取器搭配使用:
訓練
模組
Work with XMLports in Dynamics 365 Business Central - Training
Learn how to define and use XMLports in AL, understand different nodes and properties, and apply them in AL code.