Конечно, это лишь несколько общих важных моментов. Чтобы получить общую картину ситуации для вашего конкретного приложения, вам необходимо разработать модель угроз, чтобы составить полный список потенциальных опасностей. В дополнение вкладывайте средства в постоянное обучение разработчиков, потому что хакерские приемы и технологии не стоят на месте, как и все прочие технологии.
Если вы пренебрегаете хотя бы одним из приведенных правил, то все прочие средства защиты становятся в большей или меньшей мере бесполезными. Никогда не забывайте следующий принцип: система защиты ровно настолько надежна, насколько надежна ее самая слабая часть.
Хороший способ повысить степень безопасности вашего приложения — размещать компоненты в таком месте, которое требует защиты. Концептуальный шаблон стражей (gatekeeper) применяет модель конвейера к организации инфраструктуры безопасности. Эта модель помогает укрепить безопасность. Модель стражей предполагает, что безопасное приложение всегда имеет больше механизмов защиты, чем это необходимо. Каждый из этих механизмов реализовав как страж, отвечающий за проверку некоторых условий защиты. Если один из таких стражей не сработает, то нападающий столкнется со следующим стражем в конвейере. И чем больше стражей имеется в вашем приложении, тем труднее приходится злоумышленнику. На самом деле эта модель отвечает центральному принципу создания безопасных приложений: обеспечивать насколько возможно высокую степень защиты и создавать максимум проблем нарушителям.
На рис. 19.1 показан конвейер стражей. В конце этого конвейера можно видеть защищенный ресурс (которым может быть что угодно, даже ваш собственный код страницы). Защищенный ресурс будет доступен или выполнен только в том случае, если все стражи откроют к нему доступ. Если хотя бы один из них откажет в доступе, обработка запроса будет прекращена и клиенту отправлено исключение безопасности.
Реализация центрального механизма безопасности в такой манере — вообще хорошая идея. Точно так же вы можете защитить бизнес-уровни своего приложения. Инфраструктура приложений ASP.NET также, применяет этот механизм. ASP.NET включает несколько стражей, каждый из которых проверяет несколько условий, таким образом, защищая ваше приложение. В последующих разделах настоящей главы вы познакомитесь со стражами, которые включает в себя каркас ASP.NET, и с зоной ответственности каждого из них.
предыдущая следующая страница вначало главы оглавление
803