Estoy usando VSTS 2008 + .Net 2.0 + C#. Y estoy ejecutando Code Analysis después de la compilación. Recibí la siguiente advertencia de seguridad confusa. Aquí está la advertencia y el código relacionado, ¿alguna idea de lo que está mal? Si hay una advertencia de seguridad, ¿cómo solucionarlo?¿Qué significa esta advertencia de seguridad (clase de proceso .Net)?
System.Diagnostics.Process myProcess = new System.Diagnostics.Process();
myProcess.StartInfo.FileName = "IExplore.exe";
myProcess.StartInfo.Arguments = @"default.html";
myProcess.StartInfo.Verb = "runas";
myProcess.Start();
advertencia: CA2122: Microsoft.Security: 'TestHtml()' pone en 'Process.Start()' que tiene una LinkDemand. Al hacer esta llamada, 'Process.Start()' se expone indirectamente al código de usuario. Revise la siguiente pila de llamadas que podría exponer una forma de eludir la protección de seguridad:
Gracias, pero tiene su código de error construir. Error El nombre 'Verdadero' no existe en el contexto actual. ¿Algunas ideas? Estoy usando .Net 2.0 y .Net 2.0 no es compatible? – George2
Hola blowdart, tengo algunas ideas nuevas y creo que no es un problema de seguridad. Supongamos que el método Foo llama a las llamadas TestHtml y TestHtml Process.Start. Incluso si TestHtml no está habilitado con LinkDemand, sice Process.Start está habilitado con LinkDemand, siempre comprobará el permiso de TestHtml (TestHtml es el llamador inmediato). Entonces, incluso si Foo no tiene suficiente permiso, la llamada de TestHtml a Process.Start fallará. Entonces, creo que no hay problemas de seguridad. ¿Algún comentario? – George2
@George, solo estoy adivinando ahora, pero sería mejor verificar los requisitos de seguridad tan pronto como sea posible, si TestHtml cambiara cualquier estado de aplicación antes de fallar. – sisve