Lewati ke konten utama

Ikhtisar

Pengaturan policy

policy default berisi pengaturan yang direkomendasikan yang menawarkan keseimbangan antara kegunaan dan mitigasi serangan XML.

Berikut adalah contoh policy XML:

{
"policySettings": {
"EnableWarningHandling": false,
"BlockedTags": [
"/XInclude:include",
"/XSL/Transform:stylesheet"
],
"AllowedEncodings": [
"utf-8",
"utf-16",
"iso-8859-1"
],
"AllowEmptyEncoding": true,
"AllowDoctypeInCData": false
}
}

EnableWarningHandling

PolicySettings.EnableWarningHandlingMemberi tahu API validasi XML untuk mengembalikan peringatan dalam respons saat memvalidasi input XML. Peringatan dinonaktifkan secara default.

Peringatan dikembalikan dalam sebuah daftar. Jika tidak ada yang ditemukan, daftar tersebut kosong:

{
"ValidationWarnings": [
"The optional field Test is missing."
]
}

BlockedTags

Tag kustom diizinkan dalam dokumen XML. Menentukan tag yang berpotensi berisiko di PolicySettings.BlockedTags memungkinkan XML Validation API gagal jika menemukan salah satu tag ini saat memvalidasi input XML. Objek ValidationResults pada respons mengidentifikasi tag mana yang menyebabkan validasi gagal.

Tag yang diblokir ini dicocokkan dengan tag dalam dokumen XML berdasarkan nama tag yang diperluas yang menyertakan namespace. Ini memastikan tag yang benar diblokir dan penggunaan alias namespace yang berbeda tidak dapat mengakali pemeriksaan. Tag dicocokkan berdasarkan akhiran namanya sehingga satu aturan dapat memblokir namespace yang ditentukan untuk tahun yang berbeda, misalnya http://www.w3.org/2001/XInclude dan http://www.w3.org/1999/XML/xinclude.

Sebagai contoh, dalam XML berikut:

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

Namespace xi diatur ke http://www.w3.org/2001/XInclude dan digunakan sebagai prefiks untuk tag xi:include. Oleh karena itu, validasi tag ini dievaluasi menjadi http://www.w3.org/2001/XInclude:include. Nama tag yang diperluas ini sekarang diakhiri dengan salah satu tag yang diblokir secara default/XInclude:include dan ditambahkan ke hasil validasi. Pemeriksaan ini juga tidak peka huruf besar/kecil.

Secara default, tag XML berikut diblokir:

  • XInclude
  • XSL

AllowedEncodings

Dokumen XML dapat menentukan standar encoding karakter.PolicySettings.AllowedEncodings adalah daftar string, yang memungkinkan pengguna menentukan standar encoding karakter mana yang diizinkan dalam XML input. Jika XML Validation API menemukan encoding yang ditentukan, validasi akan gagal dan standar encoding tersebut diidentifikasi dalam objek ValidationResults pada respons.

Secara default, standar encoding karakter berikut diizinkan:

  • UTF-8
  • UTF-16
  • ISO-8859-1

AllowEmptyEncoding

PolicySettings.AllowEmptyEndoding mengonfigurasi kemampuan untuk mengizinkan validasi berhasil jika tidak ada encoding karakter yang ditentukan dalam XML input.

Catatan: meskipun ini diaktifkan, validasi tetap akan gagal jika XML input menentukan standar encoding yang tidak disertakan dalam PolicySettings.AllowedEncodings.

Ini diatur ke true secara default.

AllowDoctypeInCData

Bagian CDATA dapat digunakan untuk menyematkan seluruh dokumen XML di dalam dokumen XML lain.PolicySettings.AllowDoctypeInCData mengonfigurasi XML Validation API agar validasi gagal jika menemukan deklarasi doctype di bagian CDATA. Sebagai alternatif, ini dapat diatur ke true untuk mengizinkan deklarasi doctype.

Ini diatur ke false secara default.