2009-05-13 2 views

ответ

8

Я предлагаю вам прочитать Strong name assemblies can keep you out of DLL Hell:

Сильные сборки имен позволяют разработчикам упростить компонент обновления и избежать печально известный DLL Ад. Узнайте об анатомии прочных имен и узнайте, как вы можете использовать их , чтобы обеспечить совместимость версий и безопасность в ваших приложениях .NET.

Также см. this article для краткого руководства о том, как прочно назвать сборку.

+3

Первая ссылка сломана –

2

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

+1

Но у нее отсутствует способ проверить оригинал издателя. Для этого вам придется использовать такую ​​технологию, как AuthentiCode. Однако основная цель состоит в создании уникальных («сильных») имен для идентификации конкретной версии сборки (для решения проблем «DLL Hell» http://msdn.microsoft.com/en-us/library/ms811694 .aspx) –

+0

@divo: Конечно. Об этом говорится в ответе Андрея. Я не видел необходимости дублировать. Я просто хотел добавить эту возможность. Я подробно упомянул об этом в этом ответе: http://stackoverflow.com/questions/369248/can-strong-naming-an-assembly-be-used-to-verify-the-assembly-author/369268#369268 –

1

Я написал длинный ответ, в котором излагалось, как сильно называть сборку останавливает третью сторону от подделки сборки в качестве ответа на этот вопрос question. Это может быть полезно, если вы хотите, как и почему.

+1

Это правда. Однако это не было основным аспектом, когда было разработано сильное именование. В сильном названии отсутствуют важные функции, такие как аутентификация и аннулирование издателя. Если требуется надежное распределение ваших сборок, гораздо лучше полагаться на цифровые сертификаты (например, Authenticode) –

0

Я думаю, что одна из важных функций, исключающих захват DLL (или как вы ее называете,) вызывает проблемы из-за возможных слабых разрешений.

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

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

Смежные вопросы