я запустить проверку безопасности на моем приложении, и получил следующее предупреждение:C# security - LinkDemand или SecurityCritical или любое объяснение?
«Parser.GenerateJeffpReport (строка)» вызывает в «Process.Start()» который имеет LinkDemand. Выполняя этот вызов, «Process.Start()» - , косвенно подвергается коду пользователя. Просмотрите следующий стек вызовов, который может разоблачить способ обойти защиту безопасности:
Я гугл, и нашел этот вопрос:
what does this security warning mean (.Net Process class)?
Я пытался сделать как Рекомендован ответ, то есть установить мой метод с:
[PermissionSetAttribute(SecurityAction.LinkDemand, Name="FullTrust")]
Однако я получил следующее предупреждение:
Microsoft.Security: «Parser.ParseJeff (string)» защищен LinkDemand для «PermissionSetAttribute». В стандарте безопасности уровня 2 он должен быть защищен, если вместо этого быть критичным для безопасности. Удалите LinkDemand и отметьте «Parser.ParseJeff (строка)» безопасность критический.
Что мне делать? В чем смысл всего этого? почему это проблема безопасности? Я вообще не нашел документацию по Microsoft в этом разделе.
Выполнение этого вызова метода не удаляло предупреждения анализа кода. Когда я использовал его как атрибут сборки, предупреждения были удалены. Ассемблер сборки работает лучше для меня, потому что у меня было около 45 из этих предупреждений [сборка: SecurityCriticalAttribute] –