Обход данных DataContracts и отказ в обслуживании - PullRequest
0 голосов
/ 16 января 2012

Я работаю над datacontract следующим образом, который использует IExtensiblesDataObject, чтобы сделать его совместимым с версией 02 этого контракта, но меня беспокоит возможный «случайный» отказ в обслуживании через клиентов, передающих чрезмерное количество данных по проводной связи, которое необходимо быть десериализованным, повторно сериализованным и отправленным обратно.

Не отключая поддержку через ignoreExtensionDataObject в файле конфигурации, есть ли способ защиты от такой возможности, т. Е. Можете ли вы как-то ограничить количество?

[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; }
    }

    ....
}

Заранее спасибо

1 Ответ

0 голосов
/ 16 января 2012

Способ защиты вашего сервиса ограничивает MaxReceivedMessageSize (по умолчанию это 65 КБ) и квоты для читателей в вашей привязке.

...