Pangkalahatang-ideya
Mga setting ng policy
Ang default na policy ay naglalaman ng mga inirerekomendang setting na nagbibigay ng balanse sa pagitan ng kakayahang magamit at pagmitiga ng pag-atake sa XML.
Narito ang isang halimbawang 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.EnableWarningHandlingSinasabi sa XML validation API na ibalik ang mga babala sa response kapag bina-validate ang input XML. Naka-disable ang mga babala bilang default.
Ibinabalik ang mga babala sa isang listahan. Kung walang makita, walang laman ang listahan:
{
"ValidationWarnings": [
"The optional field Test is missing."
]
}
BlockedTags
Pinapayagan ang mga custom tag sa mga XML document. Ang pagtukoy ng mga posibleng mapanganib na tag sa PolicySettings.BlockedTags ay nagbibigay-daan sa XML Validation API na mag-fail kung makatagpo ito ng alinman sa mga tag na ito habang bina-validate ang input XML. Tinutukoy ng ValidationResults object sa response kung aling tag ang naging sanhi ng pagkabigo ng validation.
Itinutugma ng mga naka-block na tag na ito ang mga tag sa XML document gamit ang isang expanded tag name na kasama ang namespace. Tinitiyak nito na ang tamang tag ang bina-block at na ang paggamit ng ibang alias para sa namespace ay hindi makakaiwas sa pagsusuri. Itinutugma ang mga tag batay sa kanilang hulihan upang ang iisang rule ay makapag-block ng mga namespace na tinukoy para sa iba't ibang taon, hal. http://www.w3.org/2001/XInclude at http://www.w3.org/1999/XML/xinclude.
Halimbawa, sa sumusunod na 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>
Ang xi namespace ay nakatakda sa http://www.w3.org/2001/XInclude at ginagamit upang lagyan ng prefix ang xi:include tag. Samakatuwid, ang validation ng tag na ito ay sinusuri bilang http://www.w3.org/2001/XInclude:include. Ang pinalawak na pangalan ng tag na ito ay nagtatapos na ngayon sa isa sa mga default na naka-block na tag na /XInclude:include at idinadagdag sa mga resulta ng validation. Ang mga pagsusuring ito ay case insensitive rin.
Bilang default, ang mga sumusunod na XML tag ay naka-block:
- XInclude
- XSL
AllowedEncodings
Maaaring tumukoy ang mga XML document ng isang pamantayan ng character encoding. Ang PolicySettings.AllowedEncodings ay isang listahan ng mga string, na nagbibigay-daan sa mga user na tukuyin kung aling pamantayan ng character encoding ang pahihintulutan sa input XML. Kung makatagpo ang XML Validation API ng isang tinukoy na encoding, mabibigo ang validation at matutukoy ang pamantayan ng encoding sa ValidationResults object sa response.
Bilang default, ang mga sumusunod na pamantayan ng character encoding ay pinapayagan:
- UTF-8
- UTF-16
- ISO-8859-1
AllowEmptyEncoding
Ang PolicySettings.AllowEmptyEndoding ay kino-configure ang kakayahang pahintulutan na makapasa ang validation kung walang tinukoy na character encoding sa input XML.
Tandaan: kahit na naka-enable ito, mabibigo pa rin ang validation kung ang input XML ay tumutukoy ng isang pamantayan ng encoding na hindi kasama sa PolicySettings.AllowedEncodings.
Ito ay nakatakda sa true bilang default.
AllowDoctypeInCData
Maaaring gamitin ang mga seksyong CDATA upang mag-embed ng buong XML document sa loob ng iba pang XML document. Ang PolicySettings.AllowDoctypeInCData ay kino-configure ang XML Validation API upang ibagsak ang validation kung makatagpo ito ng isang deklarasyon ng doctype sa seksyong CDATA. Bilang alternatibo, maaari itong itakda sa true upang pahintulutan ang mga deklarasyon ng doctype.
Ito ay nakatakda sa false bilang default.