Последствия для безопасности побега / реформирования html в asp.net (работа вокруг validateRequest)
У меня есть asp.Net блеваньте на меня, когда я отправляю форму со значением <a_ (подчеркивание-пробел). Это плохо - по крайней мере, я хочу иметь возможность изящно обрабатывать ошибку, в идеале я хотел бы, чтобы пользователь мог представить все, что ему нравится, и заставить его работать так, как он ожидает.
- я мог бы установить
validateRequest="false"в сети.config, но я не хочу этого делать, потому что не понимаю последствий для безопасности.
в этой статье предлагается использовать JavaScript для escape html, а затем переформирование html-серверной части, однако я также не был уверен, каковы последствия этого для безопасности - разве это не то же самое, что настройкаvalidateRequest="false"для этого элемента управления?
2 ответов:
Обходите стороной. ValidateRequest - это всего лишь слабая попытка предотвратить атаки XSS. Хотя это и допустимая попытка, она приводит к наполовину нарушенной безопасности и сбивает разработчиков с толку.
Суть в том, чтобы предотвратить отправку javascript на хост, а затем слепо передать его обратно одному или нескольким клиентам. Вы можете предотвратить это путем HtmlEncoding все, что вы отображаете на веб-странице, что вы должны делать в первую очередь, а не полагаться на Со значением validaterequest.Мое предложение:
- изучите атаки XSS
- избавиться от ValidateRequest
- используйте библиотекуAnti-XSS вместо нее
Лучше всего использовать javascript.
Что вы делаете с представленной информацией?
Если вы собираетесь отобразить его на экране для других пользователей, вы открываете себя XSRF довольно плохо.
Это может привести к различным вещам, от искажения содержания ваших страниц (немного похоже на граффити на витрине вашего магазина) до захвата сессии и гораздо хуже.
Немного информации о XSRF атаки:
Http://webpangea.blogspot.com/2009/05/xsrf-attacks-far-too-easy.html
Comments