Как написать в asp.net web.config httpRuntime для 3.5 фреймворка - PullRequest
0 голосов
/ 30 января 2012

Этот атрибут является новым в .NET Framework версии 4.0. У меня есть файл web.config в решении с версией 4.0 .Net Framework

.
<system.web>
    <httpRuntime  encoderType="Web.AntiXss.AntiXssEncoder, Web.AntiXss"/>

и это хорошо работает, но если я изменяю версию на 3.5, я получаю эту ошибку

Unrecognized attribute 'encoderType'. Note that attribute names are case-sensitive.

Атрибут encoderType только в версии 4.0, как я могу переписать это в 3.5?

EDIT
Или как я могу использовать библиотеку Microsoft AntiXss в проектах .net 3.5?
Я использую эту статью для .net 4.0 http://haacked.com/archive/2010/04/06/using-antixss-as-the-default-encoder-for-asp-net.aspx

Ответы [ 2 ]

4 голосов
/ 30 января 2012

Это только для .Net4

Gets or sets the name of a custom type that 
        can be used to handle HTML and URL encoding.

Вы должны понимать, что это внутреннее изменение функции, которая вызывается из ядра Net4, эта функция не существует в сети 3.5 и ниже,так что это не так, как они пишут, они просто не существуют.

ссылка: http://msdn.microsoft.com/en-us/library/system.web.configuration.httpruntimesection.encodertype.aspx

Некоторые дополнительные сведения

Этот параметр на самом деле является опцией для замены класса System.Web.Util.HttpEncoder , который также существует в Net 3.5, но без возможности замены ядра.

System.Web.Util.HttpEncoder все готово к работе, и сеть.4 на самом деле вставить еще некоторые функции.Заменив его на AntiXccEncoder, возможно, вы получите больше контроля, но если нет, то это не конец света (по Х. Г. Уэллсу).

Также я проверяю, возможно ли это с некоторым кодом, чтобы заменить этовызов, и кажется мне невозможным, потому что это вызывается из-за слишком большого числа точек, например, из-за вызова всех атрибутов управления!изменить HttpEncoder на AntiXccEncoder.

Возможно, вам нужно сосредоточиться на коде страницы, который вы можете опасаться для атаки, и быть готовым к правильной обработке входных данных.

0 голосов
/ 04 мая 2018

Если вы используете версию .NET более раннюю, чем 4.5, вам нужно будет загрузить и включить библиотеку в качестве ссылки на ваш проект, а затем использовать более раннее имя библиотеки для настройки encodeType, как показано ниже.

<httpRuntime encoderType="Microsoft.Security.Application.AntiXssEncoder, AntiXssLibrary" />
...