Можно ли использовать __VIEWSTATE и __EVENTVALIDATION для исследований, чтобы взломать веб-приложение? - PullRequest
5 голосов
/ 09 марта 2011

Я сейчас изучаю ASP.NET, и меня немного смущают __VIEWSTATE и __EVENTVALIDATION.

  1. Можно ли прочитать значение этих двух элементов, чтобы узнать овнутренности приложения и, возможно, манипулировать им.Например,люди пишут, что __VIEWSTATE содержит информацию о свойствах элементов, которые не отправляются обратно через POSTBACK, как, например, метка.Разве нельзя было бы тогда манипулировать значением меток в приложении, чтобы оно отображало неверную информацию?

  2. Можно ли изменить значение __VIEWSTATE на гораздо большее значениетак что, когда он отправляется обратно на сервер, он добавляет серьезные накладные расходы к распаковке и / или расшифровке информации и, таким образом, к созданию DDOS?

Ответы [ 3 ]

6 голосов
/ 09 марта 2011
  1. Да, можно прочитать значения состояния просмотра. Он закодирован в base64, что не означает, что он зашифрован, поэтому для считывания его значений вам нужно только преобразовать его из base64 в UTF-8, и вы сможете прочитать его содержимое. Попробуйте сами здесь Каждый элемент управления указан в списке и несколько их свойств. Что касается манипулирования содержимым, это возможно, но сложно, так как содержимое проверяется перед обработкой на стороне сервера.

  2. Да, это возможно, если ваш сайт подвергся атаке и было отправлено огромное количество больших запросов с большими состояниями просмотра, это будет иметь соответствующий эффект на сервере.

Взгляните на следующее:

1 голос
/ 09 марта 2011
  1. Да, если вы не шифруете его с помощью ключа машины. Прочитайте это: Злонамеренное использование состояния просмотра
  2. Здесь помогают шифрование и ViewState MAC. Читать это: Защита вашего сайта от DDoS-атак
0 голосов
/ 09 марта 2011
  1. Да, однако он будет отображаться неправильно только для этого клиента.Когда это становится опасным, это когда вы читаете эти значения, чтобы выполнить свою бизнес-логику.Обычно для веб-приложений никогда не доверяйте информации от клиента.Значение, которое состояние представления хэширует, чтобы попытаться обнаружить модификацию с настройками по умолчанию ASP.NET, но все же может быть изменено кем-то с достаточным желанием.форма, которую вы получаете от клиента.Таким образом, им можно манипулировать.

...