अवलोकन
Policy settings
डिफ़ॉल्ट policy में अनुशंसित सेटिंग्स शामिल हैं, जो उपयोगिता और XML attack mitigation के बीच संतुलन प्रदान करती हैं।
यहाँ एक उदाहरण XML policy है:
{
"policySettings": {
"EnableWarningHandling": false,
"BlockedTags": [
"/XInclude:include",
"/XSL/Transform:stylesheet"
],
"AllowedEncodings": [
"utf-8",
"utf-16",
"iso-8859-1"
],
"AllowEmptyEncoding": true,
"AllowDoctypeInCData": false
}
}
EnableWarningHandling
PolicySettings.EnableWarningHandlingXML validation API को बताता है कि input XML को validate करते समय response में warnings लौटाई जाएँ। डिफ़ॉल्ट रूप से warnings अक्षम होती हैं।
warnings एक सूची में लौटाई जाती हैं। यदि कोई नहीं मिलती, तो सूची खाली होती है:
{
"ValidationWarnings": [
"The optional field Test is missing."
]
}
BlockedTags
XML documents में custom tags की अनुमति होती है। PolicySettings.BlockedTags में संभावित रूप से जोखिमपूर्ण tags निर्दिष्ट करने से XML Validation API input XML को validate करते समय इनमें से किसी tag के मिलने पर विफल हो सकता है। response पर ValidationResults object यह पहचानता है कि किस tag के कारण validation विफल हुआ।
ये blocked tags XML document में tags से namespace सहित expanded tag name द्वारा मेल खाते हैं। इससे यह सुनिश्चित होता है कि सही tag block हो और namespaces को अलग तरह से alias करने पर भी जाँच को दरकिनार न किया जा सके। Tags का मिलान उनके अंत के आधार पर किया जाता है ताकि एक ही rule अलग-अलग वर्षों के लिए परिभाषित namespaces को block कर सके, उदाहरण के लिए http://www.w3.org/2001/XInclude और http://www.w3.org/1999/XML/xinclude।
उदाहरण के लिए, निम्नलिखित XML में:
<?xml version="1.0"?>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:xi="http://www.w3.org/2001/XInclude">
<head>...</head>
<body>
...
<p><xi:include href="license.txt" parse="text"/></p>
</body>
</html>
xi namespace को http://www.w3.org/2001/XInclude पर सेट किया जाता है और इसका उपयोग xi:include टैग के लिए prefix के रूप में किया जाता है। इसलिए इस टैग का validation http://www.w3.org/2001/XInclude:include के रूप में आंका जाता है। यह expanded टैग नाम अब डिफ़ॉल्ट blocked tags में से एक /XInclude:include पर समाप्त होता है और validation results में जोड़ दिया जाता है। ये checks case insensitive भी हैं।
डिफ़ॉल्ट रूप से, निम्नलिखित XML tags blocked हैं:
- XInclude
- XSL
AllowedEncodings
XML documents एक character encoding standard निर्दिष्ट कर सकते हैं। PolicySettings.AllowedEncodings strings की एक सूची है, जो users को यह निर्दिष्ट करने की अनुमति देती है कि input XML में कौन-सा character encoding standard allow किया जाए। यदि XML Validation API किसी निर्दिष्ट encoding का सामना करता है, तो validation fail हो जाएगा और encoding standard को response में ValidationResults object में पहचाना जाता है।
डिफ़ॉल्ट रूप से, निम्नलिखित character encoding standards allowed हैं:
- UTF-8
- UTF-16
- ISO-8859-1
AllowEmptyEncoding
PolicySettings.AllowEmptyEndoding यह configure करता है कि यदि input XML में कोई character encoding निर्दिष्ट नहीं है, तो validation को pass होने दिया जाए।
नोट: यह enabled होने पर भी, यदि input XML ऐसा encoding standard निर्दिष्ट करता है जो PolicySettings.AllowedEncodings में शामिल नहीं है, तो validation फिर भी fail हो जाएगा।
यह डिफ़ॉल्ट रूप से true पर सेट होता है।
AllowDoctypeInCData
CDATA sections का उपयोग अन्य XML documents के भीतर पूरे XML documents embed करने के लिए किया जा सकता है। PolicySettings.AllowDoctypeInCData XML Validation API को इस तरह configure करता है कि यदि उसे CDATA section में doctype declaration मिले, तो validation fail हो जाए। वैकल्पिक रूप से, doctype declarations की अनुमति देने के लिए इसे true पर सेट किया जा सकता है।
यह डिफ़ॉल्ट रूप से false पर सेट होता है।