Как я могу ограничить доступ к сборке? - PullRequest
2 голосов
/ 24 февраля 2011

Как я могу ограничить загрузку и выполнение моих библиотек на основе определенных предварительных условий?Например, если я раздаю клиенту приложение, которое использует внешнюю библиотеку, как я могу убедиться, что внешняя библиотека используется только с приложением и не используется клиентом для других целей?

Является ли безопасность доступа к кодуответ?Если да, то есть ли хороший пример того, как применить его в ситуации, описанной выше?

Спасибо!

ОБНОВЛЕНИЕ: я не могу использовать службы для защиты логики.Я должен предоставить код в сборке и хочу защитить его от использования для создания других продуктов.

Ответы [ 4 ]

4 голосов
/ 24 февраля 2011

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

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

0 голосов
/ 24 февраля 2011

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

Вместо отправки сборки с исполняемым файлом, как насчет перемещения сборки в глобальный кэш сборок (GAC) и изменения исполняемого кода для доступа к сборке, представленной в GAC? Затем вы можете изменить имя сборки на какое-то имя мусора (или любое другое, которое вы считаете подходящим), которое клиент не сможет понять. Поэтому найти вашу сборку в этом лесу сборок будет практически невозможно.

Надеюсь, это поможет!

С уважением,

Самар

0 голосов
/ 24 февраля 2011

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

0 голосов
/ 24 февраля 2011

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

См. этот вопрос для получения дополнительной информации

...