.NET Framework 4.0. Code Access Security
От: Щербунов Нейл Анатольевич Россия  
Дата: 06.02.11 06:30
Оценка: 1455 (19) +2 -1
Статья:
.NET Framework 4.0. Code Access Security
Автор(ы): Щербунов Нейл Анатольевич
Дата: 15.12.2010
Рассмотрены изменения и нововведения в механизме Code Access Security (CAS) появившиеся в версии 4.0 .NET Framework.


Авторы:
Щербунов Нейл Анатольевич

Аннотация:
Рассмотрены изменения и нововведения в механизме Code Access Security (CAS) появившиеся в версии 4.0 .NET Framework.

Статья прислана на конкурс статей 2010 — Windows 7 и .NET
Re: .NET Framework 4.0. Code Access Security
От: SV.  
Дата: 06.02.11 08:24
Оценка: +1
Здравствуйте, Щербунов Нейл Анатольевич, Вы писали:

ЩНА>Статья:

ЩНА>.NET Framework 4.0. Code Access Security
Автор(ы): Щербунов Нейл Анатольевич
Дата: 15.12.2010
Рассмотрены изменения и нововведения в механизме Code Access Security (CAS) появившиеся в версии 4.0 .NET Framework.


Открыл, посмотрел — боже ты мой, сколько новых понятий и кода. Нельзя ли начать с того, с чего оно ДОЛЖНО начинаться — с примера из жизни, где все это может понадобиться. Такого примера, чтоб даже вопросов "а на фига" не возникало. Потому, что пока это все, извините, выглядит так, как будто одни программисты (из МС), которым надо отрабатывать ЗП, помогают отрабатывать ЗП другим программистам:

— Вася, ты чем занимался две недели?
— CAS настраивал!
— М-м-м... Ну, хорошо.

Еще раз. Я не говорю, что это бесполезно. Я говорю, что плясать надо от реальных примеров, если это популяризация технологии среди тех, кто не в теме. Если же это "междусобойчик для своих"... то поноса всей тусовке, включая разработчиков этой хрени.
Re[2]: .NET Framework 4.0. Code Access Security
От: Sinix  
Дата: 06.02.11 09:26
Оценка:
Здравствуйте, SV., Вы писали:

SV.>Открыл, посмотрел — боже ты мой, сколько новых понятий и кода. Нельзя ли начать с того, с чего оно ДОЛЖНО начинаться — с примера из жизни, где все это может понадобиться. Такого примера, чтоб даже вопросов "а на фига" не возникало.


Не выйдет — это будет примерно три таких же статьи по объёму. Если коротко — оно надо для хостинга untrusted-кода (плагинов/бажных модулей etc). Ещё (при известной любви к раскладыванию граблей) CAS можно использовать для автоматического контроля за разделением кода по слоям и для реализации "системы безопасности". В кавычках, т.к. безопасности не будет никакой

SV.>Потому, что пока это все, извините, выглядит так, как будто одни программисты (из МС), которым надо отрабатывать ЗП, помогают отрабатывать ЗП другим программистам.

Ну да, со стороны любая сложная тема выглядит раздражающе непонятно. Можно наехать "Чё, умный? Пальцем покажи!". Можно разобраться самому, благо гугль есть, блоги есть, голова, надеюсь, тоже

SV.>Еще раз. Я не говорю, что это бесполезно. Я говорю, что плясать надо от реальных примеров, если это популяризация технологии среди тех, кто не в теме.

Зачем? Зачем пытаться пиарить каждую сложную тему? Особенно если без вдумчивого изучения толку от неё — только прокачка ЧСВ. А вот людям, которые уже столкнулись с необходимостью использования CAS, статья однозначно пригодится. Мне пригодится точно.

SV.>Если же это "междусобойчик для своих"... то поноса всей тусовке, включая разработчиков этой хрени.

Хмм? Если вам ни холодно, ни жарко — зачем набрасывать? Конструктива с таким заходом вы ни от кого не услышите, уверяю. Если интересует что-то предметное — спрашивайте, только, плиз, без наездов впустую.
Re: .NET Framework 4.0. Code Access Security
От: _nn_ www.nemerleweb.com
Дата: 06.02.11 10:12
Оценка:
Здравствуйте, Щербунов Нейл Анатольевич, Вы писали:

ЩНА>Статья:

ЩНА>.NET Framework 4.0. Code Access Security
Автор(ы): Щербунов Нейл Анатольевич
Дата: 15.12.2010
Рассмотрены изменения и нововведения в механизме Code Access Security (CAS) появившиеся в версии 4.0 .NET Framework.


ЩНА>Авторы:

ЩНА> Щербунов Нейл Анатольевич

ЩНА>Аннотация:

ЩНА>Рассмотрены изменения и нововведения в механизме Code Access Security (CAS) появившиеся в версии 4.0 .NET Framework.

ЩНА>Статья прислана на конкурс статей 2010 — Windows 7 и .NET


Было бы приятнее код непосредственно вставить в статью и оформить катом (cut).
А там можно было бы в комментариях дать частичные пояснения.

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

P.S.
Статья понравилась
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: .NET Framework 4.0. Code Access Security
От: adontz Грузия http://adontz.wordpress.com/
Дата: 06.02.11 10:49
Оценка:
Здравствуйте, Щербунов Нейл Анатольевич, Вы писали:

ИМХО начиная с четвёртого раздела читается тяжеловато. Но тема важная и хорошая! Но написано так, что надо распечатать и читать вечером посвятив весь свой мозг статье. Угадалки в конце меня вообще не вставили.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re: .NET Framework 4.0. Code Access Security
От: 0K Ниоткуда  
Дата: 06.02.11 12:26
Оценка:
Здравствуйте, Щербунов Нейл Анатольевич, Вы писали:

ЩНА>Статья:

ЩНА>.NET Framework 4.0. Code Access Security
Автор(ы): Щербунов Нейл Анатольевич
Дата: 15.12.2010
Рассмотрены изменения и нововведения в механизме Code Access Security (CAS) появившиеся в версии 4.0 .NET Framework.


Хорошая статья. Сам планировал разобраться с 4.0 -- но руки никак не доходили.

Кстати, корректор, по всему видно, не осилил статью. Неправильное форматирование:

Давайте уже разберемся в разнице полномочий critical- и transparent-кода. Что такого можно первому, чего нельзя второму? Список этих ограничительных операций не так велик. Transparent-коду нельзя:


и

Вот и все, не так и много, как видите.
Давайте, однако, немного уже попрограммируем и проверим хотя бы один пункт этого списка, а заодно увидим пример применения означенных выше атрибутов.

Re[3]: .NET Framework 4.0. Code Access Security
От: SV.  
Дата: 06.02.11 13:13
Оценка: +3
Здравствуйте, Sinix, Вы писали:

S>Не выйдет — это будет примерно три таких же статьи по объёму. Если коротко — оно надо для хостинга untrusted-кода (плагинов/бажных модулей etc).


Здрасьте. Всю жизнь мы юзали плагины безо всякого CAS'а, и тут выясняется, что без него никуда. Посмотрите на реализацию плагинности к фотошопу: плагин требует явного совершения действий по установке, и этого ДОСТАТОЧНО, чтобы не было мэлвари.

Взять хоть плагины к ишаку — с ними как с динозавром на улице. Или он тебе дает при щелчке по ссылке передавать управление экзешнику, или нет. Дает — здравствуй, вирусня. Не дает — прощай, Скайп. Тот самый, обруганный автором, принцип "все или ничего", который — наименьшее зло. Потому, что на практике добросовестный разработчик должен будет через все это дерьмо пробиться, чтобы реализовать нужную функциональность, а недобросовестный найдет очередную дырку в реализации и перезаражет все, что ему надо.

Поэтому начинать надо было с убойного примера: вот, дети, у Васи с CAS'ом кошер и благодать, а у Пети без CAS'а — треф и эпидемия. На примере очень хорошо видно, насколько вешь полезная. Например, ваш пример сразу показывает бесполезность (и это хорошо).

SV.>>Потому, что пока это все, извините, выглядит так, как будто одни программисты (из МС), которым надо отрабатывать ЗП, помогают отрабатывать ЗП другим программистам.

S>Ну да, со стороны любая сложная тема выглядит раздражающе непонятно. Можно наехать "Чё, умный? Пальцем покажи!". Можно разобраться самому, благо гугль есть, блоги есть, голова, надеюсь, тоже

Это не тема непонятна, а непонятно, почему она должна быть понятна. Как раз наоборот, детали можно посмотреть в гугле, а мотивировать вас ни гугл, ни блоги не должны. Это задача популяризатора — продать вам идею необходимости популяризуемого предмета.

SV.>>Еще раз. Я не говорю, что это бесполезно. Я говорю, что плясать надо от реальных примеров, если это популяризация технологии среди тех, кто не в теме.

S>Зачем? Зачем пытаться пиарить каждую сложную тему? Особенно если без вдумчивого изучения толку от неё — только прокачка ЧСВ. А вот людям, которые уже столкнулись с необходимостью использования CAS, статья однозначно пригодится. Мне пригодится точно.

Хорошие у вас вопросы "зачем". У меня другие. Зачем так писать, и, главное, зачем потом это читать.

SV.>>Если же это "междусобойчик для своих"... то поноса всей тусовке, включая разработчиков этой хрени.

S>Хмм? Если вам ни холодно, ни жарко — зачем набрасывать? Конструктива с таким заходом вы ни от кого не услышите, уверяю. Если интересует что-то предметное — спрашивайте, только, плиз, без наездов впустую.
Re[4]: .NET Framework 4.0. Code Access Security
От: 0K Ниоткуда  
Дата: 06.02.11 13:42
Оценка:
Здравствуйте, SV., Вы писали:

SV.>Здрасьте. Всю жизнь мы юзали плагины безо всякого CAS'а, и тут выясняется, что без него никуда.


Исходим из имеющихся инструментов: если нет простого способа ограничить права плагина -- то голову никто морочить не будет. А если такой способ имеется -- то почему бы нет?

Если вы добавляете фильтр для того-же графического редактора -- зачем этому фильтру доступ к сети?

CAS является новой концепцией, по этому ее воспринимают в штыки. Имхо, у нее большое будущее.

Пользуясь случаем, попиарю свою тулузу с открытым исходным кодом для ограничения прав на уровне кода. Тулуза называется ManagedSandbox: http://managedsandbox.codeplex.com/
managedsandbox
Re[2]: .NET Framework 4.0. Code Access Security
От: Pavel Dvorkin Россия  
Дата: 06.02.11 13:58
Оценка: 56 (3)
Здравствуйте, adontz, Вы писали:

A>Здравствуйте, Щербунов Нейл Анатольевич, Вы писали:


A>ИМХО начиная с четвёртого раздела читается тяжеловато. Но тема важная и хорошая! Но написано так, что надо распечатать и читать вечером посвятив весь свой мозг статье. Угадалки в конце меня вообще не вставили.


Я бы иное посоветовал. Совет, впрочем, не мой, а моего научного руководителя кандидатской.

Написал статью — отложи ее на пару недель или даже месяц. Не прикасайся. Через пару недель возьми и прочитай. Все неудачные места для тебя станут видными.
With best regards
Pavel Dvorkin
Re[3]: .NET Framework 4.0. Code Access Security
От: adontz Грузия http://adontz.wordpress.com/
Дата: 06.02.11 14:00
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Я бы иное посоветовал. Совет, впрочем, не мой, а моего научного руководителя кандидатской.

PD>Написал статью — отложи ее на пару недель или даже месяц. Не прикасайся. Через пару недель возьми и прочитай. Все неудачные места для тебя станут видными.

Это очень мудрый совет. Так и надо делать... Ну это если ты одинокий волк и у тебя нет друзей-коолег, которым можно показать статью
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[4]: .NET Framework 4.0. Code Access Security
От: Pavel Dvorkin Россия  
Дата: 06.02.11 14:06
Оценка:
Здравствуйте, adontz, Вы писали:

A>Это очень мудрый совет. Так и надо делать... Ну это если ты одинокий волк и у тебя нет друзей-коолег, которым можно показать статью


Одно другому не мешает. Все равно они не смогут знать статью так же хорошо, как автор.
With best regards
Pavel Dvorkin
Re[5]: .NET Framework 4.0. Code Access Security
От: adontz Грузия http://adontz.wordpress.com/
Дата: 06.02.11 14:09
Оценка: 30 (1)
Здравствуйте, Pavel Dvorkin, Вы писали:

A>>Это очень мудрый совет. Так и надо делать... Ну это если ты одинокий волк и у тебя нет друзей-коолег, которым можно показать статью

PD>Одно другому не мешает. Все равно они не смогут знать статью так же хорошо, как автор.

Так это же хорошо. Одно дело понятно написать о том, что читатель и так уже знает. Другое дело, понятно написать о том, чего читатель ещё не знает. Вещи очевидные для автора, могут не являться таковыми для читателя.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[5]: .NET Framework 4.0. Code Access Security
От: adontz Грузия http://adontz.wordpress.com/
Дата: 06.02.11 14:13
Оценка:
Здравствуйте, 0K, Вы писали:

0K>Пользуясь случаем, попиарю свою тулузу с открытым исходным кодом для ограничения прав на уровне кода. Тулуза называется ManagedSandbox: http://managedsandbox.codeplex.com/


Не очень понял смысл этой утилиты. Довольно простое WinForms приложение запускается вашей утилитой только как unrestricted.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[4]: .NET Framework 4.0. Code Access Security
От: Sinix  
Дата: 06.02.11 14:16
Оценка:
Здравствуйте, SV., Вы писали:

SV.>Здрасьте. Всю жизнь мы юзали плагины безо всякого CAS'а, и тут выясняется, что без него никуда. Посмотрите на реализацию плагинности к фотошопу: плагин требует явного совершения действий по установке, и этого ДОСТАТОЧНО, чтобы не было мэлвари.


Ок, замените "надо" на "может пригодиться" — слишком категорично выразился.

SV.>Поэтому начинать надо было с убойного примера: вот, дети, у Васи с CAS'ом кошер и благодать, а у Пети без CAS'а — треф и эпидемия. На примере очень хорошо видно, насколько вешь полезная. Например, ваш пример сразу показывает бесполезность (и это хорошо).


И это будет чистой рекламой, не имеющей никакого отношения к реальности. CAS — это в первую очередь часть инфраструкутры .NET-а. Сценариев, где оно используется — выше крыши: asp, sql clr, click once, sharepoint. И, как и всё что связано с инфраструктурой (а тем более — с безопасностью), выбор "использовать или не использовать" должен делаться взвешенно, а не под влиянием очередного витка моды. Так что с этой стороны статья абсолютно корректна.

SV.>Это не тема непонятна, а непонятно, почему она должна быть понятна. Как раз наоборот, детали можно посмотреть в гугле, а мотивировать вас ни гугл, ни блоги не должны. Это задача популяризатора — продать вам идею необходимости популяризуемого предмета.


А почему каждая статья должна опускаться до уровня википедии? Популяризаторства и так хватает выше крыши. А вот серьёзных, детальных статей — наоборот. Просто сама тема такая, что начинающим туда лучше не лезть, а те, кто реально столкнутся с задачами, где может помочь CAS, от воды на полстатьи только поморщатся и уйдут на более прагматичный stackoverflow/профильные блоги.


S>>Зачем? Зачем пытаться пиарить каждую сложную тему? Особенно если без вдумчивого изучения толку от неё — только прокачка ЧСВ. А вот людям, которые уже столкнулись с необходимостью использования CAS, статья однозначно пригодится. Мне пригодится точно.


SV.>Хорошие у вас вопросы "зачем". У меня другие. Зачем так писать, и, главное, зачем потом это читать.

Лично мне — для того чтобы освежить в памяти прочитанное полгода-год назад и перепроверить себя. Ну, и ссылаться теперь есть на что
Re[5]: .NET Framework 4.0. Code Access Security
От: adontz Грузия http://adontz.wordpress.com/
Дата: 06.02.11 14:18
Оценка: +1
Здравствуйте, Sinix, Вы писали:

S>А почему каждая статья должна опускаться до уровня википедии? Популяризаторства и так хватает выше крыши. А вот серьёзных, детальных статей — наоборот. Просто сама тема такая, что начинающим туда лучше не лезть, а те, кто реально столкнутся с задачами, где может помочь CAS, от воды на полстатьи только поморщатся и уйдут на более прагматичный stackoverflow/профильные блоги.


Почему это перечисление разных случаев и оценка адекватности применения технологии в этих случаях стала "водой"?
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[6]: .NET Framework 4.0. Code Access Security
От: Pavel Dvorkin Россия  
Дата: 06.02.11 14:24
Оценка:
Здравствуйте, adontz, Вы писали:

A>Так это же хорошо. Одно дело понятно написать о том, что читатель и так уже знает. Другое дело, понятно написать о том, чего читатель ещё не знает. Вещи очевидные для автора, могут не являться таковыми для читателя.


Нечто, о чем автор очень хочет сказать, может быть просто пропущено читателем, либо потому, что он это и так очень хорошо знает (... ну не буду же я внимательно читать очевидные для меня разделы), либо потому, что он этого не знает (... идею я понял, а времени разбираться в деталях и делать тесты нет). Поэтому отзыв коллеги никогда не будет достаточным. И только сам автор может спустя некоторое время оценить, так ли он изложил то, что хотел.
With best regards
Pavel Dvorkin
Re[7]: .NET Framework 4.0. Code Access Security
От: adontz Грузия http://adontz.wordpress.com/
Дата: 06.02.11 14:42
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Нечто, о чем автор очень хочет сказать, может быть просто пропущено читателем, либо потому, что он это и так очень хорошо знает (... ну не буду же я внимательно читать очевидные для меня разделы), либо потому, что он этого не знает (... идею я понял, а времени разбираться в деталях и делать тесты нет). Поэтому отзыв коллеги никогда не будет достаточным. И только сам автор может спустя некоторое время оценить, так ли он изложил то, что хотел.


Ну это какой-то нерадивый читатель получается.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[6]: .NET Framework 4.0. Code Access Security
От: Sinix  
Дата: 06.02.11 15:07
Оценка:
Здравствуйте, adontz, Вы писали:

S>>А почему каждая статья должна опускаться до уровня википедии?

A>Почему это перечисление разных случаев и оценка адекватности применения технологии в этих случаях стала "водой"?

Напомню контекст:

SV.>>Потому, что пока это все, извините, выглядит так, как будто одни программисты (из МС), которым надо отрабатывать ЗП, помогают отрабатывать ЗП другим программистам.
S>Ну да, со стороны любая сложная тема выглядит раздражающе непонятно. Можно наехать "Чё, умный? Пальцем покажи!". Можно разобраться самому, благо гугль есть, блоги есть, голова, надеюсь, тоже

Это не тема непонятна, а непонятно, почему она должна быть понятна. Как раз наоборот, детали можно посмотреть в гугле, а мотивировать вас ни гугл, ни блоги не должны. Это задача популяризатора — продать вам идею необходимости популяризуемого предмета.


Грабли в том (повторяюсь), что security — тема неохватная и попытка рассмотреть "типичные варианты" в рамках пары абзацев будет смотреться полным издевательством. Итак почти треть статьи ушло на описание "что оно есть и откуда пошло". Вы сами попробуйте описать таким образом любую из подсистем фреймворка — увидите.

Не ребят, я вас не понимаю Две достойных статьи впервые за ~полгода (кстати, спасибо, статья по KTM понравилась ) — обязательно надо оттоптаться в комментариях?
Ну станет весь журнал вот таким:
http://rsdn.ru/forum/setup/4144511.aspx
Автор: Бойко Алексей
Дата: 06.02.11

http://rsdn.ru/forum/dotnet/4144514.flat.aspx

Кому хорошо будет?
Re[6]: .NET Framework 4.0. Code Access Security
От: 0K Ниоткуда  
Дата: 06.02.11 15:16
Оценка:
Здравствуйте, adontz, Вы писали:

A>Не очень понял смысл этой утилиты. Довольно простое WinForms приложение запускается вашей утилитой только как unrestricted.


Если простое (не нужен доступ к доп. ресурсам) -- то достаточно (1) Security/Excecuting и (2) UI/SafeTopLevelWindow. Попробуйте запустить так саму программу.

Если же простая программа требует Unrestricted -- значит программу делал чел, ни в дуб ногой не разбирающийся в концепции безопасности .Net.
Re[7]: .NET Framework 4.0. Code Access Security
От: 0K Ниоткуда  
Дата: 06.02.11 15:18
Оценка:
Здравствуйте, 0K, Вы писали:

0K>Если же простая программа требует Unrestricted -- значит программу делал чел, ни в дуб ногой не разбирающийся в концепции безопасности .Net.


Как раз и можно проверить, насколько ваша программа работает под ограниченными привилегиями.
Re[7]: .NET Framework 4.0. Code Access Security
От: adontz Грузия http://adontz.wordpress.com/
Дата: 06.02.11 15:25
Оценка: +2
Здравствуйте, Sinix, Вы писали:

S>Грабли в том (повторяюсь), что security — тема неохватная и попытка рассмотреть "типичные варианты" в рамках пары абзацев будет смотреться полным издевательством. Итак почти треть статьи ушло на описание "что оно есть и откуда пошло". Вы сами попробуйте описать таким образом любую из подсистем фреймворка — увидите.

S>Не ребят, я вас не понимаю Две достойных статьи впервые за ~полгода (кстати, спасибо, статья по KTM понравилась ) — обязательно надо оттоптаться в комментариях?

Не, я не в обиду автору. Просто вот ты назвал плагины, можно эту тему развить. Без упора на код, просто показать что права доступа можно завать тонко. Например, разрешить файловые операции, но только для определённого каталога. Это не ограничит автора плагина в функциональности, но изолирует его. Я то понимаю зачем CAS нужен, но задача объяснения зачем он нужен не менее важна, чем задача объяснения как он работает. Я не хочу сказать что эта статья плохая, она простон е вводная. А народу нужна ещё и вводная.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[7]: .NET Framework 4.0. Code Access Security
От: adontz Грузия http://adontz.wordpress.com/
Дата: 06.02.11 15:28
Оценка:
Здравствуйте, 0K, Вы писали:

A>>Не очень понял смысл этой утилиты. Довольно простое WinForms приложение запускается вашей утилитой только как unrestricted.


0K>Если простое (не нужен доступ к доп. ресурсам) -- то достаточно (1) Security/Excecuting и (2) UI/SafeTopLevelWindow. Попробуйте запустить так саму программу.

0K>Если же простая программа требует Unrestricted -- значит программу делал чел, ни в дуб ногой не разбирающийся в концепции безопасности .Net.

Программу писал я и она, всего лишь, использует нестандартные элементы управления. Я так понимаю надо сделать в виде трёх слоёв, но по факту выходит только два — приложение и сборка с кучей интеропа.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[8]: .NET Framework 4.0. Code Access Security
От: 0K Ниоткуда  
Дата: 06.02.11 16:06
Оценка:
Здравствуйте, adontz, Вы писали:

A>Программу писал я и она, всего лишь, использует нестандартные элементы управления. Я так понимаю надо сделать в виде трёх слоёв, но по факту выходит только два — приложение и сборка с кучей интеропа.


Если вы вызываете код, который требует неограниченных привилегий -- то и ваша сборка их будет требовать. Единственный выход -- добавить то что требует неограниченных привилегий в GAC (можно было бы в ManagedSandbox указать исключения, но такой возможности ПОКА нет).
Re[5]: .NET Framework 4.0. Code Access Security
От: SV.  
Дата: 06.02.11 17:36
Оценка: 5 (1) +1 -2
Здравствуйте, Sinix, Вы писали:

Sinix, спор в том, что я говорю "сначала зачем это нужно делать, потом как это сделать", а вы говорите "сначала как это сделать, а зачем — тема необъятная, об этом можно вообще не писать". Поверьте бывшему лауреату, что это просто глупо.

S>И это будет чистой рекламой, не имеющей никакого отношения к реальности. CAS — это в первую очередь часть инфраструкутры .NET-а. Сценариев, где оно используется — выше крыши: asp, sql clr, click once, sharepoint. И, как и всё что связано с инфраструктурой (а тем более — с безопасностью), выбор "использовать или не использовать" должен делаться взвешенно, а не под влиянием очередного витка моды. Так что с этой стороны статья абсолютно корректна.


Я же говорю, что примеры — дело хорошее. Без примеров как оно звучало — "хостинг антрастед кода". Не жук накакал. А с примерами...

Вот пусть найдется здесь хоть один шаропоинтщик, который не просто реализовал наследника евент-ресивера, а сделал более-менее крупный проект, типа интеграции с 1С. И скажет, что он думает про плагинность шаропоинта. Лицо только закрывайте, потому, что плагинность шаропоинта — злой анекдот. Вы просто не работали с ним и не знаете. Более мерзкой плагинорасширяемой системы не бывает. Я молчу про то, что вместо фабрики классов эти уроды требуют для инстанцирования указывать имя типа, причем не поддерживают коллекций, а потому более одного хендлера на один тип евента без ухищрений не создать. Но про безопасность, мать ихнюю за ногу, мы поговорим.

Безопасность плагинов начинается со strong name'ности. Не далее как в прошлую пятницу я сбросил исходный код проекта, чтобы его сбилдили и развернули на машине, на которой ГАРАНТИРОВАННО ХВАТАЕТ ПРАВ для сборки дотнет-проектов. Студия 2008 при открытии таких проектов просит ввести пароль от pfx. Однако, 2010-ая уже заставляет шаманить: sn -i companyname.pfx VS_KEY_3E185446540E7F7A. И — упс! — облом, потому, что прав на импорт нет. День потерян, в понедельник придет админ, будет наделять юзера той машины правами. Теперь скажите мне — зачем? ЗАЧЕМ нужна стронгнеймность, если для регистрации плагина все равно нужен админский доступ к stsadm.exe на сервере? Тот, кто будет разворачивать — слепой дурак, он свою сборку с чужой перепутает? Или только "частично" доверяет авторам сборки? На это я скажу, что базу бэкапить надо, а не стронгнеймы присваивать. В результате, написать обработчик — дело 3 минут. Задеплоить его, имея доступ к серверу через заднюю дверь — 3 часа.

Ладно, как насчет SQL CLR? А вот как: сборка, созданная поверх dll'ки как UNSAFE (!!!) не может содержать референсов на другие сборки — требует и их "создания" тоже. При том, что доступ к ФС — полный, а знающие люди говорят, что через рефлекшен можно отлично загрузить и выполнить код. Такая вот безопасность.

Короче, не надо пугать объемом в три статьи. Приведите хоть один пример, но бесспорный. Чтобы польза CAS'а вылезала из него со всей неумолимой очевидностью. Не можете — освободите трибуну тем, кто может. Вас за язык никто не тянул, вопрос мой был автору исходного материала.

***

Лично я отлично понимаю суть игры МС с авторами управляемых расширений к сиквелу и шаропоинту. Если каждый дурак сможет писать плаги, кто тогда будет платить шаропонтщикам по текущим (немалым) ставкам? (Не SAP, конечно, но тоже неплохо). Но когда люди не отдавая себе отчета в том, "зачем" это делается, начитаются "как" и начнут валять в своих проектах, это вряд ли сделает мир лучше.
Re: .NET Framework 4.0. Code Access Security
От: Аноним  
Дата: 06.02.11 17:55
Оценка: 8 (1)
Спасибо за статью... Правда я так и не придумал как это применять... кроме плагинов заружаемых в песочные домены...
А вот по моему атрибуты имеют потенциал... в проектировании.. но я не совсем понимаю пока как проектировать системы с использованием этих трех слоев..
Может кто подскажет что почитать?
Re[6]: .NET Framework 4.0. Code Access Security
От: out-of-the-way США www.tehnoromantik.net
Дата: 06.02.11 18:43
Оценка: +2
Так мы статью обсуждаем или технологию. По мне статья нормальная, вот только причесать маленько.
А по Вашему получается, раз мне не нравится то, что придумала ms значит и статья об этом плохая.
Программа — мысли спрессованные в код.
Re[7]: .NET Framework 4.0. Code Access Security
От: SV.  
Дата: 06.02.11 19:39
Оценка:
Здравствуйте, out-of-the-way, Вы писали:

OOT>Так мы статью обсуждаем или технологию. По мне статья нормальная, вот только причесать маленько.

OOT>А по Вашему получается, раз мне не нравится то, что придумала ms значит и статья об этом плохая.

Если вы перечитаете, то увидите, как было дело: я оставил комментарий автору, что в статье не раскрыта тема применимости (а это главное, потому, что технология несколько... м-м-м... спорная). Что даются безаппеляционные утверждения типа "совершенно неправильный подход «всем можно все»", которые вне контекста не имеют смысла. Пришел Sinix и начал вместо автора приводить примеры и обосновывать утверждения. Соответственно, спор пошел с ним. Я только рад буду, если придет сам автор и ответит что-то по существу моей претензии.
Re[8]: .NET Framework 4.0. Code Access Security
От: Smarty Россия  
Дата: 07.02.11 14:47
Оценка:
Здравствуйте, SV., Вы писали:

SV.>Я только рад буду, если придет сам автор и ответит что-то по существу моей претензии.


Автор пришел и отвечает. Про практическую применимость CAS-а можно было бы сказать 2-мя путями:

1. Что-то на уровне "тому в C:\Test писать можно, а этому — нельзя". Посчитал что для читателя готового воспринять текст статьи (а она, как правильно заметили ранее, определенно не для junior-.NET Developer) такая элементарщина самоочевидна.
2. Провести действительно концептуальное исследование сценариев применения технологии с (желательно) указанием возможных альтернативных технологий для каждого случая. Это будет текст по объему равный, как минимум, обсуждаемой статье, можете даже не сомневаться. Я даже вчерне прикинул и 10-20 абзацев по этому вопросу закопипастил себе в черновик из англояз. блогов/ресурсов. Из самого сырого материала планируемый объем материала чистового был ясен с совершенной ясностью — еще одна полноценная статья.

Итого: 1=не серьезно, 2=супер-серьезно и точно отдельная статья, без вариантов. Я решил сосредоточиться (пока? ) именно на технической составляющей, мне это ближе и интереснее (в конце концов актуальнее, у меня же тоже работа, я не проф. писатель), а лучше всего рассказывается о теме которой сам увлечен. Вторую статью пока не осилил, уж звиняйте... И первая забрала изрядно сил и времени. Хотя и было интересно!
Re[4]: .NET Framework 4.0. Code Access Security
От: XRonos Россия  
Дата: 08.02.11 06:38
Оценка: -1
Здравствуйте, SV., Вы писали:

SV.>Хорошие у вас вопросы "зачем". У меня другие. Зачем так писать, и, главное, зачем потом это читать.


Сергей, зачем так наехал на человека? У нас и так на русском статей по технологиям нехватает, поэтому я лично любой информации рад.
Статья почти понятна, 10% инфы подойдёт как справочный материал и это уже Хорошо.
Теперь на счёт полезности/бесполезности кодобезопасности и доступа к нему:
Тут не надо кому-то что-то показывать на жизненных примерах. Всегда найдутся те, кто узреет пользу для себя... Пиарить технологию — удел
Мелкософта, там умные Маркетологи сидят и придумывают сакральные тексты на жизненных примерах.
А наш удел — рубить техническую фишку и всё.
Бди!
Re[9]: .NET Framework 4.0. Code Access Security
От: SV.  
Дата: 08.02.11 19:12
Оценка: +1 :)
Здравствуйте, Smarty, Вы писали:

SV.>>Я только рад буду, если придет сам автор и ответит что-то по существу моей претензии.

S>Автор пришел и отвечает. Про практическую применимость CAS-а можно было бы сказать 2-мя путями:
S>1. Что-то на уровне "тому в C:\Test писать можно, а этому — нельзя". Посчитал что для читателя готового воспринять текст статьи (а она, как правильно заметили ранее, определенно не для junior-.NET Developer) такая элементарщина самоочевидна.
S>2. Провести действительно концептуальное исследование сценариев применения технологии с (желательно) указанием возможных альтернативных технологий для каждого случая. Это будет текст по объему равный, как минимум, обсуждаемой статье, можете даже не сомневаться. Я даже вчерне прикинул и 10-20 абзацев по этому вопросу закопипастил себе в черновик из англояз. блогов/ресурсов. Из самого сырого материала планируемый объем материала чистового был ясен с совершенной ясностью — еще одна полноценная статья.

Не надо концептуального исследования. Достаточно простых примеров. Один есть — запись в разные места ФС. Ну-у-у-у... Я как-то предполагал, что такие вопросы на уровне ФС и должны решаться. И они решаются. Без CAS'а можно задать набор разных прав к разным объектам ФС. Тем не менее, это пример, какой уж ни будь.

Как мне рассказали в свое время, у англоговорящих есть такая игра — the single most important чего-нибудь. Например, reason for existence (а у французов расхожее выражение — raison d'être). Спросите меня про любую технологию, в которой я разбираюсь — я с ходу вам назову TSMIRoE. А тут дискуссия на девятый круг пошла, и до сих пор никто не сформулировал, чего ради программист должен это изучать.

S>Итого: 1=не серьезно, 2=супер-серьезно и точно отдельная статья, без вариантов. Я решил сосредоточиться (пока? ) именно на технической составляющей, мне это ближе и интереснее (в конце концов актуальнее, у меня же тоже работа, я не проф. писатель), а лучше всего рассказывается о теме которой сам увлечен. Вторую статью пока не осилил, уж звиняйте... И первая забрала изрядно сил и времени. Хотя и было интересно!
Re[5]: .NET Framework 4.0. Code Access Security
От: SV.  
Дата: 08.02.11 19:15
Оценка: +2 -1 :)
Здравствуйте, XRonos, Вы писали:

SV.>>Хорошие у вас вопросы "зачем". У меня другие. Зачем так писать, и, главное, зачем потом это читать.

XR>Сергей, зачем так наехал на человека?

С каких пор вопрос "зачем" считается наездом? Я, что ли, виноват, что и автор, и Sinix в ответ на этот вопрос банально слили, отмазавшись якобы объемом ответа?

XR>А наш удел — рубить техническую фишку и всё.


Не говори за меня. Я как представлю новое поколение продуктов, так мне аж дурно становится. Виста со своими "уверены ли вы?" семечками покажется.
Re[10]: .NET Framework 4.0. Code Access Security
От: Smarty Россия  
Дата: 09.02.11 10:52
Оценка: +3
Здравствуйте, SV., Вы писали:

SV.>Без CAS'а можно задать набор разных прав к разным объектам ФС.


Вы действительно не понимаете разницу между "раздача прав через CAS" и "раздача прав системой безопасности операционной системы"? Тогда может все же СНАЧАЛА статью прочесть, а? У меня создается стойкое ощущение что те ответы что ищите Вы — есть в статье. Уже.

> Я, что ли, виноват, что и автор, и Sinix в ответ на этот вопрос банально слили


Тональность меняем. Здесь Вам никто ничем не обязан. Не обязан даже отвечать. Поэтому для "слива" и "отмаза" нет совершенно никаких объективных предпосылок. Ибо даже ответ в стиле "интересно — сам найдешь" будет абсолютно корректен.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.