मैं वीएसटीएस 2008 + नेट 2.0 + सी # का उपयोग कर रहा हूं। और मैं निर्माण के बाद कोड विश्लेषण चला रहा हूँ। मुझे निम्नलिखित भ्रमित सुरक्षा चेतावनी मिली है। यहां चेतावनी और संबंधित कोड है, कोई विचार गलत है? अगर सुरक्षा चेतावनी है, तो इसे कैसे ठीक करें?इस सुरक्षा चेतावनी का मतलब क्या है (नेट प्रोसेस क्लास)?
System.Diagnostics.Process myProcess = new System.Diagnostics.Process();
myProcess.StartInfo.FileName = "IExplore.exe";
myProcess.StartInfo.Arguments = @"default.html";
myProcess.StartInfo.Verb = "runas";
myProcess.Start();
चेतावनी: CA2122: Microsoft.Security: 'TestHtml()' जो एक LinkDemand है 'Process.Start()' में कहता है। यह कॉल करके, 'Process.Start()' अप्रत्यक्ष रूप से उपयोगकर्ता कोड से अवगत कराया गया है। निम्न कॉल स्टैक की समीक्षा करें जो सुरक्षा सुरक्षा को रोकने के लिए एक तरीका का पर्दाफाश कर सकती है:
धन्यवाद, लेकिन अपने कोड त्रुटि का निर्माण किया है। त्रुटि वर्तमान संदर्भ में 'True' नाम मौजूद नहीं है। कोई विचार? मैं .NET 2.0 का उपयोग कर रहा हूं और .NET 2.0 इसका समर्थन नहीं करता है? – George2
हाय blowdart, मेरे पास कुछ नए विचार हैं और मुझे लगता है कि यह एक सुरक्षा छेद नहीं है। मान लें कि विधि Foo TestHtml और TestHtml कॉल प्रक्रिया को कॉल करता है। प्रारंभ करें। यहां तक कि यदि TestDemand के साथ TestHtml सक्षम नहीं है, तो Sice Process.Start LinkDemand के साथ सक्षम है, यह हमेशा TestHtml की अनुमति की जांच करेगा (TestHtml तत्काल कॉलर है)। तो अगर फू के पास पर्याप्त अनुमति नहीं है, तो TestHtml से Process.Start पर कॉल विफल हो जाएगी। तो, मुझे कोई सुरक्षा समस्या नहीं है। कोई टिप्पणी? – George2
@ जॉर्ज, अभी अनुमान लगा रहा है, लेकिन जितनी जल्दी हो सके सुरक्षा आवश्यकताओं की जांच करना बेहतर होगा, अगर टेस्टएचटीएमएल विफल होने से पहले किसी भी आवेदन स्थिति को बदल देगा। – sisve