Вопрос по security, asp-classic, xss – Это непросто - вам нужно создать оболочку, вызываемую COM, установить на серверах и т. Д. Я просто не думаю, что она подходит для «классического» ASP.

13

тоящее время я пытаюсь защитить свое классическое приложение ASP от XSS. Я наткнулся на AntiXSS от Microsoft в сети, и мне было интересно, будет ли это работать с классическим приложением?

Если нет, у вас есть идеи, как я могу провести дезинфекцию струн?

Ваш Ответ

5   ответов
1

кущем проекте), вы можете использовать регулярное выражение, чтобы разрешить только эти теги и никаких других, например:

set objRegExp = new RegExp
with objRegExp
    .Pattern = "<^((b)|(i)|(em)|(strong)|(br))>.*</.*>"
    .IgnoreCase = varIgnoreCase
    .Global = True
end with
cleanString = objRegExp.replace(originalString, "")
14

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

Server.HTMLEncode(string) 

Двумя наиболее важными контрмерами для предотвращения межсайтовых скриптовых атак являются:

Ограничить ввод.Кодировать вывод.

черезКак: предотвратить межсайтовый скриптинг в ASP.NET (я знаю, что я не классическая осина, но есть похожие принципы)

И если вам действительно нужно отобразить форматированный текст (устаревшая система, вздох), написание функции очистки для использования нескольких регулярных выражений - это, по крайней мере, шаг в правильном направлении. Dave DuPlantis
@rizzle ОП вопрос "Как мне сделать Х?" и ваш комментарий "Вы должны сделать X"? Да, КАК мы это делаем? Stephen R
Да, если вы собираетесь размещать сгенерированный пользователем код где-либо, кроме innerHTML, вам следует использовать библиотеку Microsoft Anti-Cross Site Scriptingwpl.codeplex.com missaghi
@ Steoates: здесь, как правило, довольно приличное решение. John Gietzen
Согласно OWASP просто HTMLEncoding недостаточно. Видеть:owasp.org/index.php/... blischalk
0
<% 
Response.AddHeader "X-XSS-Protection", "1" 
%>
0

вызываемую COM, установить на серверах и т. Д. Я просто не думаю, что она подходит для «классического» ASP.

Похожие вопросы