Code access security

Сучасні, що значною мірою взаємозалежні комп'ютерні системи часто схильні до дії коду з різних, іноді невідомих джерел. Код може бути вкладений в повідомлення електронної пошти, міститися в документах або скачиваться з Інтернету. На жаль, багато користувачів вже на власному досвіді випробували дію небезпечного коду, включаючи віруси і черв'яки, який може пошкоджувати та знищувати дані, що призводить до втрати часу і грошей.

Більшість поширених механізмів забезпечення безпеки надають користувачам права на основі їх облікових даних (зазвичай це пароль), і обмежують доступ користувачів до ресурсів (як правило, папок і файлів). Однак цей підхід не здатен вирішити деякі проблеми: користувачі отримують код з багатьох джерел, деякі з яких можуть бути ненадійними; код може містити помилки або вразливі місця, які можуть використовуватися шкідливим кодом. Крім того, код в деяких випадках може виконувати якісь дії без відома користувача. В результаті може призвести до пошкодження комп'ютерних систем і витік конфіденційних даних, коли обачні і благонадійні користувачі запускають шкідливе або містить безліч помилок програмне забезпечення. Для виконання коду більшість механізмів безпеки, які застосовуються в операційних системах, вимагають, щоб кожна його частина була повністю довіреної, крім, можливо, сценаріїв на веб-сторінках. Таким чином, необхідний механізм безпеки з широкою сферою застосування, що дозволяє коду, отриманого від однієї комп'ютерної системи, безпечно виконуватися в іншій системі навіть при відсутності відносин довіри між цими системами.

З метою захисту комп'ютерних систем від шкідливого мобільного коду, забезпечення можливості безпечного виконання коду, що надійшов з невідомих джерел, і захисту довіреної коду від навмисного або випадкового порушення безпеки платформа .NET Framework пропонує механізм безпеки, званий управлінням доступом для коду. Управління доступом для коду дозволяє визначати різні рівні надійності для коду, в залежності від походження та інших параметрів його посвідчення. Управління доступом для коду також забезпечує дотримання різних рівнів довіри для коду, мінімізуючи кількість коду, для виконання якого потрібно повна довіра. За допомогою управління доступом для коду можна знизити ймовірність того, що код буде використаний не за призначенням шкідливим або містить безліч помилок кодом. Воно може також обмежити вашу відповідальність, так як ви можете вказати для коду набору операцій, дозволених до виконання. Управління доступом для коду допомагає також знизити рівень можливих збитків від вразливих місць в коді.

В .NET Framework 4 відбулися серйозні зміни системи управління доступом для коду. Найпомітніше зміна - це прозорість з точки зору безпеки. хоча є й інші важливі зміни. Інформацію про ці зміни див. У розділі Зміни системи безпеки.

Будь-керований код, призначений для середовища CLR, отримує переваги управління доступом для коду, навіть якщо він не виконує жодного виклику управління доступом для коду. Детальніше див. У розділі Code Access Security Basics.

Управління доступом для коду і частково довірений код

Ця політика діє щодо всіх версій платформи .NET Framework, крім платформи .NET Framework в складі Silverlight.

Схожі статті