Ich verwende VSTS 2008 + .Net 2.0 + C#. Und ich führe Code-Analyse nach Build durch. Ich habe die folgende verwirrende Sicherheitswarnung erhalten. Hier ist die Warnung und verwandte Code, irgendwelche Ideen, was ist falsch? Wenn es Sicherheitswarnung gibt, wie man es repariert?Was bedeutet diese Sicherheitswarnung (.Net Prozessklasse)?
System.Diagnostics.Process myProcess = new System.Diagnostics.Process();
myProcess.StartInfo.FileName = "IExplore.exe";
myProcess.StartInfo.Arguments = @"default.html";
myProcess.StartInfo.Verb = "runas";
myProcess.Start();
Warnung: CA2122: Microsoft.Security: 'TestHtml()' ruft in 'Process.Start()', die eine Linkdemand hat. Durch diesen Aufruf wird 'Process.Start()' indirekt dem Benutzercode ausgesetzt. Überprüfen Sie den folgenden Aufrufstapel, der eine Möglichkeit zur Umgehung des Sicherheitsschutzes verfügbar machen kann:
Dank Ihrer Methode hinzufügen, aber Ihr Code hat Fehler zu bauen. Fehler Der Name "True" existiert im aktuellen Kontext nicht. Irgendwelche Ideen? Ich verwende .Net 2.0 und .Net 2.0 unterstützt es nicht? – George2
Hallo Blowdart, ich habe ein paar neue Ideen und ich denke, es ist kein Sicherheitsloch. Angenommen, die Methode Foo ruft TestHtml und TestHtml Aufrufe Process.Start auf. Selbst wenn TestHtml nicht mit LinkDemand aktiviert ist, sice Process.Start mit LinkDemand aktiviert ist, prüft es immer die Berechtigung von TestHtml (TestHtml ist sofortiger Aufrufer). Selbst wenn Foo nicht genug Berechtigungen hat, wird der Aufruf von TestHtml zu Process.Start fehlschlagen. Also, ich denke keine Sicherheitsprobleme. Irgendwelche Kommentare? – George2
@George, nur jetzt raten, aber es wäre besser, die Sicherheitsanforderungen so früh wie möglich zu überprüfen, wenn TestHtml einen Anwendungsstatus vor dem Scheitern ändern würde. – sisve