Начало работы - есть ли контрольный список рекомендаций и как повысить безопасность на сайте MVC? - PullRequest
0 голосов
/ 07 октября 2011

Я создавал довольно много сайтов на базе MVC локально и наконец готов развернуть первый, но я довольно нервничаю.

Во время тестирования я заметил несколько вещей, которые меня беспокоили - я использую аутентификацию форм по умолчанию с несколькими настройками (хотя это никак не подчеркивает безопасность).

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

* - я использовал [Authorize] на контроллерах и был удивлен, что могу просто войти без какой-либо аутентификации

Я предполагаю, что это потому, что cookie устанавливается для localhost, а не для приложения / порта (хотя я не слишком много могу сделать с этим при разработке).

На основании этого насколько безопасна аутентификация по умолчанию?

1. Можно ли в любом случае проверить по коду, что у пользователя нет «фальшивого» куки? / Проверить, что пользователь вошел в систему из моего приложения?

2. Мне просто интересно, есть ли какие-нибудь контрольные списки или что-нибудь, что я могу пройти перед развертыванием?

Sort of - 3. На момент написания этого вопроса: 1. Я предполагаю, что мог бы добавить столбец со случайным числом, которое сохраняется в cookie, и затем этот номер проверяется каждый раз, когда выполняется любая аутентификация ... однако, я не хотел начинать дурачиться с провайдером членства ... но я думаю, что это может сработать. Это хорошая идея?

Ответы [ 2 ]

0 голосов
/ 07 октября 2011

Базовая веб-аутентификация не должна быть доверенной для приложений, которые содержат действительно конфиденциальную информацию. При этом достаточно для большинства приложений. Обязательно проверяйте свое приложение как можно чаще до и после выпуска на наличие уязвимостей XSS.

Вот список рекомендуемых Microsoft «Защити себя». http://msdn.microsoft.com/en-us/library/ff649310.aspx

Независимо от того, насколько сильна ваша аутентификация, одна маленькая ошибка XSS и злонамеренный пользователь могут поступить так, как они пожелают, на ваш сайт и данные ваших пользователей!

Недавно я прочитал хорошую книгу: Worx Professional ASP.NET, в которой более подробно рассказывается об этих шагах по обеспечению безопасности, а также о примерах проблем. Прочитав это, я смог сравнительно легко «исказить и украсть» информацию о моих собственных сайтах и ​​убедительно раскрыл важность обеспечения безопасности для XSS.

0 голосов
/ 07 октября 2011

Попробуйте использовать IIS на своей машине вместо VS Dev Server. Решает вашу проблему 1.

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

Вам просто нужно помнить, чтобы поместить атрибут [Authorize] в нужное место. Если нет на ваших контроллерах, поместите их в правильные методы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...