Последствия для безопасности побега / реформирования html в asp.net (работа вокруг validateRequest)



У меня есть asp.Net блеваньте на меня, когда я отправляю форму со значением <a_ (подчеркивание-пробел). Это плохо - по крайней мере, я хочу иметь возможность изящно обрабатывать ошибку, в идеале я хотел бы, чтобы пользователь мог представить все, что ему нравится, и заставить его работать так, как он ожидает.




  • я мог бы установить validateRequest="false" в сети.config, но я не хочу этого делать, потому что не понимаю последствий для безопасности.


  • в этой статье предлагается использовать JavaScript для escape html, а затем переформирование html-серверной части, однако я также не был уверен, каковы последствия этого для безопасности - разве это не то же самое, что настройка validateRequest="false" для этого элемента управления?

576   2  

2 ответов:

Обходите стороной. ValidateRequest - это всего лишь слабая попытка предотвратить атаки XSS. Хотя это и допустимая попытка, она приводит к наполовину нарушенной безопасности и сбивает разработчиков с толку.

Суть в том, чтобы предотвратить отправку javascript на хост, а затем слепо передать его обратно одному или нескольким клиентам. Вы можете предотвратить это путем HtmlEncoding все, что вы отображаете на веб-странице, что вы должны делать в первую очередь, а не полагаться на Со значением validaterequest.

Мое предложение:

  1. изучите атаки XSS
  2. избавиться от ValidateRequest
  3. используйте библиотекуAnti-XSS вместо нее

Лучше всего использовать javascript.

Что вы делаете с представленной информацией?

Если вы собираетесь отобразить его на экране для других пользователей, вы открываете себя XSRF довольно плохо.

Это может привести к различным вещам, от искажения содержания ваших страниц (немного похоже на граффити на витрине вашего магазина) до захвата сессии и гораздо хуже.

Немного информации о XSRF атаки:

Http://webpangea.blogspot.com/2009/05/xsrf-attacks-far-too-easy.html

Comments

    Ничего не найдено.