Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемgymnasium441.ru
1 Использование возможностей.NET Framework при построении системы безопасности приложения ДокладчикMicrosoft
2 Главные темы Разрешения доступа кода aka CAS Разрешения Identity Базируются на свидетельстве (aka Evidence) Безопасность на основе ролей aka PrincipalPermission Политика безопасности Демонстрация всего вышеперечисленного!
3 Разрешения доступа кода Два основных типа Доступ к ресурсу Доступ к операции Наследуются от CodeAccessPermission Код запрашивает разрешения.NET Framework предоставляет... на основе свидетельства
4 Основы CAS Код с безопасными типами aka type-safe Императивный и декларативный синтакс КодАтрибут Запрос разрешений Частично доверяемые сборки Разрешения для библиотек классов
5 Код с безопасными типами JIT-компилятор проверяет код Утилита PEVerify проверяет код на безопасность типов Компилятор генерирует (или не генерирует) безопасный код Влияет на предоставление разрешений
6 Императивный синтаксис FileIOPermission filePerm = new FileIOPermission( filePerm.Demand();
7 Декларативный синтаксис [SqlClientPermission( Action=SecurityAction.Demand, ConnectionString=Database=Pubs;Server=(local)) ] public void MyMethod(connectionString) { SqlConnection conn = new SqlConnection(connectionString); conn.Open(); }
8 Запрос разрешений На уровне сборки Сохраняются в манифесте Средство сообщить среде о необходимых разрешениях
9 Типы запросов МинимальныеНеобязательныеОтклоненные Именованные наборы NothingExecutionFullTrustInternetLocalIntranetSkipVerification XML представление СтрокаФайл
10 Запрос разрешения через XML представление [assembly:PermissionSetAttribute( SecurityAction.RequestMinimum, ")]
11 Частично доверяемые сборки Частично доверямые сборки не могут обращаться к системным библиотекам Нужно использовать AllowPartiallyTrustedCallersAttribute Некоторые системные библиотеки имеют этот атрибут Accessibility.dllIEExecRemote.dllMicrosoft.VisualBasic.dllMscorlib.dllSystem.dllSystem.Data.dllSystem.Drawing.dll System.Web.dll (1.1) System.Web.Mobile.dll (1.1) System.Web.Services.dll System.Web.RegularExpressions.dll (1.1) System.Windows.Forms.dllSystem.XML.dll
12 Разрешения для библиотек классов Требование – Demand Полный проход стека вызовов Требование при сборке – LinkDemand Нет прохода стека Кроме статических конструкторов Требование при наследовании – InheritanceDemand Класс или метод Требует наличия разрешения для наследованых классов Запросы не распространяются на вложенные классы
13 Разрешения Identity Назначаются на основе свидетельства Определяются загрузчиком (хостом).EXEСервисASP.NET Internet Explorer Цифровая подпись издателя Web-сайт Strong Name (открытый ключ, имя, версия) URL Зона (Internet Explorer)
14 Запрос Identity [UrlIdentityPermission( SecurityAction.Demand, Url=" Public void DoSomething() { }
15 Ролевая безопасность Политика доступа на основе ролей Исполняемый код всегда идентифицирован Windows - пользователь Generic – cобственная схема аутентификации Principal – контекст безопасности Включает в себя Identity PrincipalPermission обобщает подход Запросы разрешений на основе Identity Вызывающий код обязан совпадать с встроенной ролью
16 Определение текущего пользователя // 1-й способ (== Win32) WindowsIdentity id = WindowsIdentity.GetCurrent(); // 2-й способ WindowsIdentity id = Thread.CurrentPrincipal.Identity; // 3-й способ (в ASP.NET) WindowsIdentity id = Context.User.Identity;
17 Проверка принадлежности к роли // Императивная PrincipalPermission myPerm = new PrincipalPermission(Dima, Developer); myPerm.Demand(); // Декларативная [PrincipalPermission( SecurityAction.Demand, Name = «Dima", Role = Manager")] public static void SecureAccess() { } // Прямая WindowsPrincipal MyPrincipal = (Thread.CurrentPrincipal as WindowsPrincipal); if(MyPrincipal.IsInRole(«Developer")) { }
18 Политика безопасности Настраивается через.NET Framework Configuration caspol Состоит из Уровней Групп кода Именованных наборов разрешений
19 Уровни политики безопасности ИерархияEnterpriseMachineUserAppDomain Нижние уровни не могут увеличить разрешения.. но могут уменьшить
20 Группы кода Логическая группировка, основанная на AllMembershipConditionApplicationDirectoryMembershipConditionHashMembershipConditionPublisherMembershipConditionSiteMembershipConditionStrongNameMembershipConditionUrlMembershipConditionZoneMembershipCondition Ассоциируется с набором разрешений Свидетельство используется для проверки вхождения
21 Наборы разрешений Включают в себя NothingExecutionInternetLocalIntranetEverythingFullTrust Состоят как минимум из одного разрешения
22 Свидетельство Информация от загрузчика или хоста Включает в себя Identity Используется средой для определения принадлежности к группе кода... тем самым получая набор разрешений
23 Демонстрация Разработка Add-in с ограниченными правами Демонстрация Разработка Add-in с ограниченными правами
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.