XmlReaderSettings.MaxCharactersInDocument 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置一个值,该值指明 XML 文档中所允许的最大字符数。 零 (0) 值表示对 XML 文档的大小没有限制。 非零值指定最大大小(以字符数计)。
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) 值表示对已分析文档中的字符数没有限制。 非零值指定可分析的最大字符数。
文档的最大字符计数包括扩展实体产生的字符计数。
如果读者尝试读取大小超过此属性的文档, XmlException 将引发 。
此属性可用于缓解攻击者提交极大型 XML 文档的拒绝服务攻击。 通过限制文档的大小,可以检测攻击并可靠地恢复。