개요
Policy settings
기본 policy에는 사용성과 XML 공격 완화 간의 균형을 제공하는 권장 설정이 포함되어 있습니다.
다음은 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.EnableWarningHandling은 입력 XML을 검증할 때 XML validation API가 응답에 경고를 반환하도록 지시합니다. 경고는 기본적으로 비활성화되어 있습니다.
경고는 목록으로 반환됩니다. 발견된 항목이 없으면 목록은 비어 있습니다:
{
"ValidationWarnings": [
"The optional field Test is missing."
]
}
BlockedTags
사용자 지정 태그는 XML 문서에서 허용됩니다. PolicySettings.BlockedTags에 잠재적으로 위험한 태그를 지정하면 XML Validation API가 입력 XML을 검증하는 동안 이러한 태그를 발견할 경우 실패하도록 할 수 있습니다. 응답의 ValidationResults 객체는 어떤 태그 때문에 검증이 실패했는지 식별합니다.
이 차단된 태그는 네임스페이스를 포함하는 확장된 태그 이름으로 XML 문서의 태그와 일치합니다. 이렇게 하면 올바른 태그가 차단되며, 네임스페이스에 다른 별칭을 지정해도 검사를 우회할 수 없습니다. 태그는 끝나는 방식으로 일치되므로 단일 규칙으로 서로 다른 연도에 정의된 네임스페이스를 차단할 수 있습니다. 예: 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 네임스페이스는 http://www.w3.org/2001/XInclude로 설정되며 xi:include 태그의 접두사로 사용됩니다. 따라서 이 태그의 유효성 검사는 http://www.w3.org/2001/XInclude:include로 평가됩니다. 이렇게 확장된 태그 이름은 이제 기본 차단 태그 중 하나인 /XInclude:include로 끝나며 유효성 검사 결과에 추가됩니다. 이러한 검사는 대소문자도 구분하지 않습니다.
기본적으로 다음 XML 태그는 차단됩니다:
- XInclude
- XSL
AllowedEncodings
XML 문서는 문자 인코딩 표준을 지정할 수 있습니다. PolicySettings.AllowedEncodings는 문자열 목록이며, 사용자가 입력 XML에서 허용할 문자 인코딩 표준을 지정할 수 있게 합니다. XML Validation API가 지정된 인코딩을 발견하면 유효성 검사는 실패하며, 해당 인코딩 표준은 응답의 ValidationResults 객체에서 식별됩니다.
기본적으로 다음 문자 인코딩 표준이 허용됩니다:
- UTF-8
- UTF-16
- ISO-8859-1
AllowEmptyEncoding
PolicySettings.AllowEmptyEndoding은 입력 XML에 문자 인코딩이 지정되지 않은 경우 유효성 검사가 통과되도록 허용하는 기능을 구성합니다.
참고: 이것이 활성화되어 있더라도 입력 XML이 PolicySettings.AllowedEncodings에 포함되지 않은 인코딩 표준을 지정하면 유효성 검사는 계속 실패합니다.
기본적으로 true로 설정됩니다.
AllowDoctypeInCData
CDATA 섹션은 다른 XML 문서 안에 전체 XML 문서를 포함하는 데 사용할 수 있습니다. PolicySettings.AllowDoctypeInCData는 XML Validation API가 CDATA 섹션에서 doctype 선언을 발견할 경우 유효성 검사를 실패하도록 구성합니다. 또는 doctype 선언을 허용하도록 true로 설정할 수 있습니다.
기본적으로 false로 설정됩니다.