Why can't hard names be used in assemblies that are not signed?

To sign assembly A, you must make sure that all assemblies B, C, D that are used by A are signed, and then all assemblies that are used by B, C, D, etc. I don’t understand what kind of security it is. I think this should prevent fake, but assembly A is allowed to open any file, and it can be faked. The same goes for the external web server.

Also, it's too easy to sign the assembly with the .snk file that you publish bypassing this requirement.

+5
source share
3 answers

, B/C/D (), A ; . , B/C/D A.

+8

. , - , .

: GAC, , . GAC, ( ). , , GAC.

+2

, , , , . , , , , .

If strongly named objects do not work this way, the attack method will replace elements that are not signed with the rogue code that the attacker wants to execute. The error code will be executed in the trusted security context of the signed element.

+1
source

All Articles