Написание безопасных приложений asp.net - PullRequest
2 голосов
/ 24 декабря 2009

Я нахожусь в проекте, который включает обработку финансовой информации, и поэтому мне нужно написать безопасные страницы asp.net с использованием C # 2008 (https и т. Д.)

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

Спасибо

Ответы [ 3 ]

3 голосов
/ 24 декабря 2009

На эту тему есть целая книга, Доминик Байер Разработка более защищенных приложений Microsoft ASP.NET 2.0 . Он выдающийся и имеет массу функций и приемов, которые вы не найдете больше нигде, по крайней мере, без особых копаний. Я использовал эту книгу для разработки веб-безопасности в двух проектах и ​​очень рекомендую ее.

РЕДАКТИРОВАНИЕ ДОБАВИТЬ: Вторая рекомендация, Написание безопасного кода: практические стратегии и проверенные методы для создания безопасных приложений в сетевом мире . Хотя большая часть кода в этой книге посвящена неуправляемому коду, разделы, посвященные пониманию хороших методов разработки безопасности, моделирования угроз и т. Д., Действительно рассказывают о том, о чем вы должны думать при разработке и оценке проблем безопасности вашего веб-сайта. 1007 *

1 голос
/ 24 декабря 2009

Если вы заинтересованы в использовании SSL-сертификата для защиты своего сайта и его страниц, имейте в виду, что SSL - это технология, применяемая на транспортном уровне, то есть она не зависит от используемой среды программирования или языка. Сертификаты SSL устанавливаются через IIS или оснастку сертификатов MMC на сервере / ПК.

Существует несколько этапов использования сертификата SSL с IIS:

  1. Создание запроса на сертификат в IIS
  2. Отправьте запрос сертификата в доверенный центр сертификации (сторонние поставщики, такие как Verisign, DigiCert, Thawte и т. Д.)
  3. Установите сертификат, предоставленный поставщиком, на сервер и примените его к своему веб-сайту

Для тестирования вы можете использовать makecert.exe для создания самозаверяющих сертификатов. Они будут работать в вашем браузере для тестирования вашего приложения, но никогда не должны использоваться в производстве. Вот хороший ответ stackoverflow, который соответствует вашим потребностям:

Использование makecert для разработки SSL

Как только вы начнете производство, вам понадобится сертификат от настоящего центра сертификации. Как только вы выберете поставщика, у него будут конкретные инструкции по созданию сертификата. Недавно я пользовался DigiCert и был им доволен.

Помимо реализации SSL-сертификата, вам, конечно же, необходимо обеспечить безопасность вашего реального веб-сайта / приложения с использованием аутентификации, ролей и т. Д.

Вот хороший пример возможностей безопасности asp.net:

http://msdn.microsoft.com/en-us/library/aa302388.aspx

0 голосов
/ 24 декабря 2009

Вот хорошее место для начала:

Библиотека анти-межсайтовых скриптов от Microsoft:

http://channel9.msdn.com/posts/Jossie/Anti-XSS-Library-v31-Find-Fix-and-Verify-Errors/

Кроме того, я предполагаю, что вы собираетесь использовать Verisign. Вот хорошая ссылка от Microsoft:

http://support.microsoft.com/kb/293817

Редактировать: Я должен также добавить, одну вещь, чтобы отметить. Не располагайте конфиденциальными данными в Интернете. Если вам это не нужно, не собирайте и не храните его на сервере, подключенном к Интернету.

Fiddler - отличный способ попытаться подделать данные в вашем собственном приложении, чтобы увидеть, есть ли дыра в безопасности, есть видеоуроки о том, как это сделать на сайте загрузки:

Вот еще несколько руководств по безопасности от Microsoft, включая криптографию: http://msdn.microsoft.com/en-us/library/ms978512.aspx

Еще один хороший обзор по безопасности: http://davidhayden.com/blog/dave/archive/2005/10/23/2527.aspx

Еще одна хорошая ссылка, Создание безопасных приложений ASP.NET: аутентификация, авторизация и безопасная связь: http://msdn.microsoft.com/en-us/library/aa302387.aspx

Кроме того, возникает вопрос о переполнении стека: Какие меры следует предпринять для защиты моего многоуровневого приложения ASP.NET?

...