XmlReaderSettings.MaxCharactersInDocument 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
XML 문서에서 허용되는 최대 문자 수를 나타내는 값을 가져오거나 설정합니다. 값이 0이면 XML 문서의 크기에 제한이 없습니다. 0이 아닌 값은 최대 크기(문자)를 지정합니다.
public:
property long MaxCharactersInDocument { long get(); void set(long value); };
public long MaxCharactersInDocument { get; set; }
member this.MaxCharactersInDocument : int64 with get, set
Public Property MaxCharactersInDocument As Long
속성 값
XML 문서에서 허용되는 최대 문자 수입니다. 기본값은 0입니다.
예제
다음 코드에서는 이 속성을 설정한 다음 제한보다 큰 문서를 구문 분석하려고 시도합니다. 실제 시나리오에서는 이 제한을 유효한 문서를 처리할 수 있을 만큼 큰 값으로 설정하지만 악의적인 문서의 위협을 제한할 만큼 작습니다.
string markup = "<Root>Content</Root>";
XmlReaderSettings settings = new XmlReaderSettings();
settings.MaxCharactersInDocument = 10;
try
{
XmlReader reader = XmlReader.Create(new StringReader(markup), settings);
while (reader.Read()) { }
}
catch (XmlException ex)
{
Console.WriteLine(ex.Message);
}
Dim markup As String = "<Root>Content</Root>"
Dim settings As XmlReaderSettings = New XmlReaderSettings()
settings.MaxCharactersInDocument = 10
Try
Dim reader As XmlReader = XmlReader.Create(New StringReader(markup), settings)
While (reader.Read())
End While
Catch ex As XmlException
Console.WriteLine(ex.Message)
End Try
이 코드는 다음 출력을 생성합니다.
There is an error in XML document (MaxCharactersInDocument, ).
설명
값이 0이면 구문 분석된 문서의 문자 수에 제한이 없습니다. 0이 아닌 값은 구문 분석할 수 있는 최대 문자 수를 지정합니다.
문서의 최대 문자 수에는 확장된 엔터티에서 발생하는 문자 수가 포함됩니다.
판독기에서 이 속성을 XmlException 초과하는 크기의 문서를 읽으려고 하면 throw됩니다.
이 속성을 사용하면 공격자가 매우 큰 XML 문서를 제출하는 서비스 거부 공격을 완화할 수 있습니다. 문서의 크기를 제한하여 공격을 감지하고 안정적으로 복구할 수 있습니다.