2012-01-16 3 views
0

IExtensiblesDataObject를 사용하여이 계약서의 버전 02와 호환되도록 datacontract를 작업 중이지만 과도한 양의 데이터를 전달하는 클라이언트를 통한 '의도하지 않은' 직렬화 해제, 재 직렬화 및 되돌려 보내야하는 와이어를 통해.Roundtripping DataContracts 및 Denial of Service 공격

config 파일의 ignoreExtensionDataObject를 통해 지원을 해제하지 않고도 그러한 궁극적 인 상황을 방지 할 수있는 방법이 있습니까? 즉 수량을 어떻게 든 감당할 수 있습니까? 사전

답변

0

서비스를 보호하는 방법으로

[DataContract(Namespace="http://schemas.myComany.com/sample/01")] 
public class Sample : IExtensibleDataObject 
{ 
    [DataMember] 
    public int32 sample_ID; 

    private ExtensionDataObject _data; 
    public virtual ExtensionDataObject ExtensionData 
    { 
     get { return _data; } 
     set { _data = value; } 
    } 

    .... 
} 

덕분에 MaxReceivedMessageSize (기본적으로는 65킬로바이트이다)와 바인딩의 리더 할당량 제한된다.