<xmlSerializer> 요소

XmlSerializer의 진행에 대한 추가 검사가 수행되었는지 여부를 지정합니다.

<구성>
<system.xml.serialization>

구문

<xmlSerializer checkDeserializerAdvance = "true|false" />  

특성 및 요소

다음 섹션에서는 특성, 자식 요소 및 부모 요소에 대해 설명합니다.

특성

attribute 설명
checkDeserializeAdvances XmlSerializer의 진행률이 검사되었는지 여부를 지정합니다. 특성을 "true" 또는 "false"로 설정합니다. 기본값은 "true"입니다.
useLegacySerializationGeneration XmlSerializer가 C# 코드를 파일에 쓴 다음 어셈블리로 컴파일하여 어셈블리를 생성하는 레거시 serialization 생성을 사용하는지 여부를 지정합니다. 기본값은 false입니다.

자식 요소

없음

부모 요소

요소 Description
<system.xml.serialization> 요소 XmlSerializerXmlSchemaImporter 클래스에 대한 구성 설정을 포함합니다.

설명

기본적으로 XmlSerializer는 신뢰할 수 없는 데이터를 역직렬화할 때 잠재적 서비스 거부 공격에 대한 추가 보안 계층을 제공합니다. deserialization 도중 무한 루프의 탐지를 시도하여 이러한 보안을 제공합니다. 이러한 조건이 검색되면 다음과 같은 메시지와 함께 예외가 throw됩니다. "내부 오류: 기본 스트림에 대한 deserialization을 계속할 수 없습니다."

이 메시지가 반드시 서비스 거부 공격이 진행 중임을 의미하는 것은 아닙니다. 드문 경우지만 무한 루프 검색 메커니즘이 가양성(false positive)을 생성하여 적법한 들어오는 메시지에 대해 예외가 throw될 수도 있습니다. 특정 애플리케이션에서 적법한 메시지가 이러한 추가 보호 계층에 의해 거부된 경우 checkDeserializeAdvances 특성을 “false”로 설정합니다.

예제

다음 코드 예제에서는 checkDeserializeAdvances 특성을 “false”로 설정합니다.

<configuration>  
  <system.xml.serialization>  
    <xmlSerializer checkDeserializeAdvances="false" />  
  </system.xml.serialization>  
</configuration>  

참조