2012-03-25 2 views
0

При чтении Справочник Hacker для веб-приложений, я попытался сделать небольшой тест на своем собственном веб-сайте (ASP.NET MVC3).Предотвращение сбоев данных в ответе

У меня есть модель, которая содержит два поля, первое поле отключено dropdownlist. Вторым является с включенным полем. Первое поле отключено из View.chtml и добавлено new {disabled="disabled"} в качестве паратемера.

Вот что случилось со мной, я побежал Burp Suite инструмент в качестве прокси и захватил ответ. В ответе я удалил атрибут disabled="disabled" из HTML, а затем перенаправил ответ браузеру. Oviuosly, страница теперь имеет два разрешенных поля.

Вопрос в том, как предотвратить вмешательство полей с помощью таких инструментов, как Burp Suite?

ответ

1

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

Суть в том, что. Никогда не доверяйте вводу и всегда проверяйте ее допустимо.

+0

Хорошо, для этой конкретной проблемы, как насчет сравнения модели с GET и POST в контроллере? Я имею в виду сравнение readonly attrbute (s)? – Anwar

+0

Зачем вам нужно читать данные только для чтения, кроме первичного ключа? В конце концов вы отправляете его клиенту в первую очередь. И вообще, что может помочь против хакеров, это [AntiForgeryToken] (http://msdn.microsoft.com/en-us/library/dd492767.aspx) – Maurice

+1

Простым способом игнорировать данные только для чтения является использование атрибута Bind и исключая поля. – Maurice

Смежные вопросы