KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Программирование » Симон Робинсон - C# для профессионалов. Том II

Симон Робинсон - C# для профессионалов. Том II

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Симон Робинсон, "C# для профессионалов. Том II" бесплатно, без регистрации.
Перейти на страницу:

Машина теперь сконфигурирована при наличии полного доверия всем сборкам, которые были подписаны с помощью сертификата ABC Corporation. Чтобы подтвердить это, выполним команду caspol.exe -lg, которая выводит новую группу доступа к коду (1.8):

Security is ON

Execution checking is ON

Policy change prompt is ON


Level = Machine


Code Groups:

1. All code: Nothing

 1.1. Zone - MyComputer: Full Trust

  1.1.1. Zone — Intranet: LocalIntranet

  1.2.1. All code: Same site Socket and Web.

  1.2.2. All code: Same directory FileIO - Read, PathDiscovery

 1.3. Zone — Internet: Internet

  1.3.1. All code: Same site Socket and Web.

 1.4. Zone — Untrusted: Nothing

 1.5. Zone — Trusted: Internet

  1.5.1. All code: Same site Socket and Web.

 1.6. StrongName - 0024000004800000940000000602000000240000525341310004000001

000190007DlFA57C4AED9F0A32E84AA0FAEFD0DE9E8FD6AEC8F87FB03766C834C99921EB23BE79AD9D5

DCC1DD9AD236132102900B723CF980957FC4E177108FC607774F29E8320E92EA05ECE4E821C0A5EFE8

F1645C4C0C93C1AB99285D622CAA652C1FAD63D745D6F2DF5F17E5EAF0FC4963D261C8A1143651820

6DC093344D5AD293: FullTrust

 1.7. StrongName - 0000000000000000040000000000000: FullTrust

 1.8. Publisher -

3048024100ECBEFB348C1364B0A3AE14FA9805F893AD180C7B2E57ADABBBE7EF94694A1E92BC5B4B59

EF76FBDAC8D04D3DF2140B7616550FE2D5AE5F1 5E03CBB54932F5CBB0203010001: FullTrust

Success

В качестве еще одной проверки попросим caspol.exe сообщить, какие группы кода соответствуют нашей сборке:

caspol.exe -resolvegroup securityapp11.exe


Level = Enterprise

Code Groups:

1. All code: FullTrust


Level = Machine

Code Groups:

1. All code: Nothing

 1.1. Zone — Intranet: LocalIntranet

  1.1.1. All code: Same site Socket and Web.

  1.1.2. All code: Same directory FileIO — Read, PathDiscovery

 1.2. Publisher - 3048024100ECBEFB348C1364B0A3AE14FA9805F893AD180C7B2E57ADABB

BE7EF94694A1E92BC5B4B59EF76FBDAC8D04D3DF2140B7616550FE2D5AE5F15E03CBB54932F5CBB0

203010001: FullTrust


Level = User

Code Groups:

1. All code: FullTrust


Success

Результаты работы утилиты показывают, что сборка получает множество полномочий FullTrust при соответствии новой группе кода.

Управление зонами

Мы уже говорили о зонах, предоставляемых Windows, которыми мы управляем с помощью инструментов безопасности из Internet Explorer. Вот эти четыре зоны:

□ Intranet — все сайты Web, которые не находятся в интранет текущей организации.

□ Trusted Sites — сайты Web, которые не способны разрушить данные пользователя.

□ Restricted Sites — сайты Web, которые потенциально могут повредить компьютер.

□ Internet — все сайты Web, не попавшие в другие зоны.

Эти настройки управляются из Internet Explorer, так как они применимы к сайтам, посещаемым с помощью браузера, имеющего доступ к коду .NET (либо загруженному, либо в элементах управления страниц). Если используется другой браузер, он скорее всего не будет поддерживать код .NET и поэтому не будет параметров для управления ассоциированными зонами.

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

Чтобы изменить настройки, связанные с каждой зоной, откройте Internet Explorer, а затем диалоговое окно Options из меню Tools. В окне Options перейдите на вкладку Security:

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

Присутствующие здесь параметры предоставляют достаточно возможностей, чтобы аккуратно определить, что составляет 'интранет' в организации пользователя. Кроме того, кнопка Advanced позволяет открыть диалоговое окно, где задается URI для сайтов, которые мы хотим включить в зону LocalIntranet.

Отметим параметр в нижней части этого диалогового окна, который предоставляется для каждой из зон, за исключением зоны Internet. Он задает, что сайты в этой зоне будут считаться надежными, если соединение с ними происходит через защищенный HTTP с помощью шифрования Secure Sockets Layer(SSL). Если считать надежным сайт, который доступен через незашифрованное соединение, возникает потенциальный риск атаки, так как трафик может быть перехвачен. Если желательно проверить, находится ли сайт в определенной зоне, посетите сайт и посмотрите на нижний правый угол окна Internet Explorer, в котором будет выводиться имя зоны для текущего адреса Web.

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

Заключение

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

Легко видеть, что в .NET разработан более высокий уровень контроля безопасности, чем существовало раньше в Windows, при этом большая часть системы безопасности поставляется автоматически, так как не требуется никаких усилий, чтобы использовать ее на базовом уровне. И когда необходимо расширить ее, нам предоставляются классы и инфраструктуры.

Безопасность постоянно находится в поле зрения Microsoft, и хотя компания пока не решила все проблемы, управляемая система безопасности .NET, является существенным шагом вперед, так как предоставляет среду, в которой код проверяется прежде, чем начинается его выполнение.

Конечно, не случайно эти разработки происходят в то время, когда Microsoft все больше склоняется в сторону распространения своих продуктов через Web, так как безопасность при этом является существенным фактором.

Пpиложeние A

C# для разработчиков C++ 

Введение

Это приложение предназначено для разработчиков, которые уже хорошо знакомы с C++ и хотят узнать, какие существуют различия между C++ и C#. Мы сделаем обзор языка C#, отмечая специально те области, где он отличается от C++. Так как два языка имеют много общего в синтаксисе и методологии, хорошо подготовленные программисты C++ смогут использовать это приложение в качестве краткого курса C#.

Необходимо четко понимать, что C# является языком программирования, отличным от C++. В то время как C++ был создан для общего объектно-ориентированного программирования в те дни, когда типичный компьютер был автономной машиной, выполняющей интерфейс пользователя на основе командной строки, C# разработан специально для работы с .NET и согласован с современной средой Windows и управляемыми мышью интерфейсами пользователя, сетами и Интернетом, Однако также неоспоримо, что два языка очень похожи как своим синтаксисом, так и тем что оба они созданы для использования одной парадигмы программирования, где код основывается на иерархиях наследуемых классов. Эта похожесть неудивительна при условии, что, как часто отмечалось в этой книге, C# в большой степени был создан как объектно-ориентированный язык, взявший самое лучшее из ранее созданных объектно-ориентированных языков программирования, из которых C++, несомненно, был до сих пор наиболее успешным примером, но отказался от более неудачных свойств этих языков

В связи со сходством между этими двумя языками программирования разработчики, использующие C++, могут обнаружить, что самый простой путь изучения C# состоит в использовании его как C++ с небольшими отличиями и в изучении этих отличий. Это приложение создано для того, чтобы в этом помочь. Мы начнем с обширного обзора, который в общих терминах дает понятия об основных различиях между двумя языками и также указывает, какие области у них совпадают. Затем мы сравним как выглядит стандартная программа "Hello, World" в каждом из этих языков. Большой объем приложения посвящен последовательномy анализу каждой из основных областей языка и подробному сравнению C# и C++. Очевидно, что приложение такого объема не может быть исчерпывающе полным, но оно создано для того чтобы охватить главные различия между языками, которые могут встретиться в ходе повседневного программирования. Отметим, что C# в большом числе областей существенно опирается на поддержку библиотеки базовых классов платформы .NET. В этом приложении мы ограничим наше внимание самим языком C# и не будем подробно рассматривать базовые классы.

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*