Was stark Namensgebung ist und wie ist es sinnvoll, in .NetStarke Namensgebung in .net
Antwort
Ich schlage vor, Sie Strong name assemblies can keep you out of DLL Hell lesen:
Strong Name Baugruppen erlauben Entwickler Komponente Updates zu vereinfachen und zu vermeiden, die berüchtigte DLL Hölle. Erfahren Sie mehr über die Anatomie von starke Namen und sehen Sie, wie Sie verwenden können, um die Versionskompatibilität und Sicherheit in Ihren .NET-Anwendungen zu gewährleisten.
Siehe auch this article für ein kurzes Tutorial, wie man eine Baugruppe zu einem starken Namen macht.
Es kann auch verwendet werden, um sicherzustellen, dass die Baugruppe nicht manipuliert wird, da sie vom ursprünglichen Herausgeber freigegeben wurde.
Aber es fehlt eine Möglichkeit, den ursprünglichen Herausgeber zu überprüfen. Dafür müssten Sie zusätzlich eine Technologie wie AuthentiCode verwenden. Der Hauptzweck besteht jedoch darin, eindeutige ("starke") Namen zu erstellen, um eine bestimmte Version einer Assembly zu identifizieren (um die "DLL Hell" -Probleme zu beheben http://msdn.microsoft.com/en-us/library/ms811694 .aspx) –
@divo: Sicher. Dies wird in Andrews Antwort erwähnt. Ich habe nicht gesehen, dass du duplizieren musst. Ich wollte nur diese Möglichkeit hinzufügen. Ich hatte diese Tatsache im Detail in dieser Antwort erwähnt: http://stackoverflow.com/questions/369248/can-strong-naming-an-assembly-be-used-to-verify-the-assembly-author/369268#369268 –
Ich schrieb eine lange Antwort, die beschreibt, wie stark die Benennung einer Baugruppe verhindert, dass Dritte die Baugruppe manipulieren, als Antwort auf diese question. Es kann nützlich sein, wenn Sie wollen, wie auch und warum.
Das stimmt. Dies war jedoch nicht der Hauptaspekt, als starke Namensgebung entwickelt wurde. Bei der starken Benennung fehlen wichtige Funktionen wie die Authentifizierung und Sperrung des Publishers. Wenn eine manipulationssichere Verteilung Ihrer Assemblies gewünscht wird, ist es viel besser, sich auf digitale Zertifikate (wie Authenticode) zu verlassen –
Ich denke, eine der wichtigen Funktionen zur Vermeidung von DLL-Hijacking (oder was auch immer Sie es nennen) Probleme aufgrund von potenziellen schwachen Berechtigungen.
Nehmen wir an, dass eine der DLLs in Ihrer Anwendung von "Jeder" geschrieben werden kann, in diesem Fall kann jemand sie nur ändern und wenn ein Hochprivilegierter ausgeführt wird, kann der Angreifer seine Privilegien erhöhen.
Das ist ziemlich cool, denn in der realen Welt können Sie diese Angriffe gegen Anwendungen wie Anti-Viren und andere komplexe Anwendungen sehen, die auf mehrere DLLs an mehreren verschiedenen Orten beruht.
- 1. .NET: Starke Namensgebung vs. Authenticode
- 2. Kann starke Namensgebung Probleme mit der Objektserialisierung in C# verursachen?
- 3. Google Maps Polygon Namensgebung
- 4. irgaph Vertex Namensgebung Probleme r
- 5. Schlichte und reoccurring Namensgebung Problem
- 6. Starke Namensvalidierung fehlgeschlagen
- 7. Starke Validierung in WPF
- 8. Sind .NET-Assemblies ohne starke Namen vor versehentlicher Beschädigung geschützt?
- 9. Unterstützt Redis starke Konsistenz?
- 10. Wofür sind starke benannte Schlüssel?
- 11. Starke Parameter in Rails 3.2.8
- 12. Allgemeine MVC Fragen - Namensgebung, Struktur (PHP)
- 13. Rails aktiv vs Aktion (Railties Namensgebung)
- 14. Jenkins Maven bereitstellen jar nexus - Artefakt Namensgebung
- 15. Gut Richtlinien zur Namensgebung Bool Eigenschaften
- 16. "Eventuelle Konsistenz" vs "Starke Eventual Consistency" vs "Starke Konsistenz"?
- 17. Starke Referenzzyklen für Verschlüsse?
- 18. Kopie vs starke Eigenschaften
- 19. Asynctask starke Verwendung
- 20. GlobalAssemblyInfo.cs und starke Benennung
- 21. Starke Typisierung Fehler
- 22. Simulierte starke Nutzung
- 23. Starke Art absolute Navigation
- 24. Optional starke typisierte Compiler
- 25. Starke Parameter erfordern mehrere
- 26. tsql- starke Passwörter
- 27. In Rails 4 deaktivieren starke Parameter standardmäßig
- 28. Starke und schwache Verwechslung in iOS
- 29. Starke Unveränderlichkeit vs schwache Unveränderlichkeit in Java?
- 30. Starke Eigenschaft in ARC - Objective C
Erste Verknüpfung ist gebrochen –