Почему сборки со строгим именем не могут использовать блоки, которые не подписываются?

Раньше я не использовал переменную var в выражении if ... поэтому я верю, что с Scope всегда будет происходить что-то не так, поэтому (если я) я определю var stickywidth = 0 за пределами оператора if обновите переменную внутри оператора if без var, или я использую ее с троичным оператором:

var stickywidth = $(window).width() < 960 ? 200 : 500;
5
задан Bruno Martinez 15 May 2009 в 13:51
поделиться

3 ответа

Дело в том, что в противном случае вы могли бы заменить сборку B / C / D на другую (взломанную), и A никогда бы не заметил; он загрузит их и выполнит код. С сильным именованием вы не можете сделать это без повторной подписи взломанного B / C / D тем же ключом или взлома A.

8
ответ дан 13 December 2019 в 19:35
поделиться

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

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

1
ответ дан 13 December 2019 в 19:35
поделиться

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

РЕДАКТИРОВАТЬ

Пример сценария: если вы помещаете сборку в GAC, она должна иметь строгое имя, чтобы разрешить параллельное управление версиями. Однако вы не могли бы поместить его в GAC, если бы его зависимости не были там (иначе они не загрузились бы во время выполнения). Чтобы эти сборки загружались надежно, они также должны иметь строгие имена и в GAC.

2
ответ дан 13 December 2019 в 19:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: