2015-05-29 6 views
6

मैं जावा एप्लिकेशन के एचपी फोर्टिफा स्कैन से झूठी-सकारात्मक को खत्म करने की कोशिश कर रहा हूं।एचपी फोर्टिफाइ - एनोटेटिंग विधि पैरामीटर

यह विधि एक "गोपनीयता उल्लंघन" समस्या होती है

private void writeOutput(String passwordRules, PrintWriter out) { 
     ... 
     out.print(passwordRules); 
     ... 
} 

इसका कारण यह है मज़बूत, नामकरण रिवाजों का इस प्रकार तय करने के लिए कि passwordRules निजी डेटा होता है (PrintWriter एक सर्वलेट प्रतिक्रिया है)। लेकिन मेरा passwordRules निजी डेटा नहीं है - इसमें "न्यूनतम 8 वर्ण" जैसी चीज़ें शामिल हैं।

मैं चर के नाम को बदलकर त्रुटि को दूर कर सकता हूं। हालांकि सिद्धांत रूप में मैं स्रोत कोड विश्लेषक के लाभ के लिए, मेरे कोड की पठनीयता से समझौता नहीं करना चाहता हूं।

मैं इस इसे ठीक करने की उम्मीद:

private void writeOutput(@FortifyNotPassword String passwordRules, PrintWriter out) ... 

हालांकि ऐसा लगता है एनोटेशन इस संदर्भ के लिए नहीं लिखा है:

The annotation @FortifyNotPassword is disallowed for this location. 

मैंने कोशिश की:

private void writeOutput(String passwordRules, PrintWriter out) { 
     ... 
     @FortifyNotPassword String rules = passwordRules; 
     out.print(rules); 
     ... 
} 

.. लेकिन यह झूठी सकारात्मक को हटा नहीं देता है। (और यह कोड को कम पठनीय बनाने के मेरे सिद्धांत से समझौता नहीं करता है)।

मैंने उपरोक्त परिणामों के साथ @FortifyNotPrivate के साथ उपरोक्त कोशिश की है।

तो ऐसा करने का सही तरीका क्या है?

+0

ओह! उस पैराग्राफ को याद किया। क्षमा याचना। –

उत्तर

2

फोर्टिफ़ाई आपको इस स्थिति से निपटने के दो तरीके प्रदान करता है: 1) समस्या को दबाएं, या 2) इस मुद्दे को छुपाएं। जो आप चुनते हैं उस पर निर्भर करता है कि आप क्या मानते हैं कि आपके लिए सबसे अच्छा काम करेगा।

दबाने वाले मुद्दे। यदि आप सुनिश्चित हैं कि विशिष्ट भेद्यता नहीं है, और कभी भी चिंता नहीं होगी, तो आप किसी समस्या को दबाने के रूप में चिह्नित कर सकते हैं। आप विशिष्ट प्रकार के मुद्दों के लिए चेतावनियों को दबाना भी चाह सकते हैं जो उच्च प्राथमिकता या तत्काल चिंता नहीं हो सकती हैं। उदाहरण के लिए, आप तय किए गए मुद्दों को दबा सकते हैं, या समस्याएं - आपके मामले में - आप ठीक करने की योजना नहीं बनाते हैं। दबाए गए मुद्दों को समस्या पैनल में दिखाए गए समूह योग में शामिल नहीं किया गया है। जब आप इस मुद्दे के बारे में जागरूकता को खत्म करना चाहते हैं तो यह दृष्टिकोण सबसे अच्छा हो सकता है।

छिपे हुए मुद्दे। आप कहीं और ध्यान केंद्रित करते समय व्याकुलता से बचने के लिए अस्थायी रूप से समस्याओं का एक समूह छुपा सकते हैं। उदाहरण के लिए, आप को सौंपे गए सभी को छोड़कर आप सभी मुद्दों को छुपा सकते हैं। आपके द्वारा छुपाए गए मुद्दों को हल करने के लिए निर्दिष्ट व्यक्तियों को अभी भी उन तक पहुंच सकते हैं। मुद्दों पैनल में प्रदर्शित समूह कुल छिपे हुए मुद्दों में शामिल हैं। अगर आपको किसी फ़ोल्डर सूची में कोई समस्या मिलती है जिसे आप छिपाना चाहते हैं या किसी दूसरे फ़ोल्डर में निर्देशित करना चाहते हैं, तो आप फ़िल्टर विज़ार्ड का उपयोग करके एक नया फ़िल्टर बना सकते हैं। फ़िल्टर विज़ार्ड फिल्टर के लिए मिलान की स्थितियों के साथ सभी विशेषताओं को प्रदर्शित करता है। दस्तावेज के पी 2 9 HP_Fortify_Audit_Workbench_User_Guide_4.30; यह दस्तावेज आपकी फोर्टिफ़ाई प्रोग्राम फ़ाइलों के साथ है। यह विकल्प बेहतर हो सकता है यदि आप दूसरों को मुद्दों के बारे में जागरूक होना चाहते हैं, भले ही आप इसे अनदेखा करते हैं।

हटाए गए मुद्दे। यह विकल्प आपकी स्थिति के लिए विशेष रूप से प्रासंगिक नहीं है, लेकिन मैं इसे पूर्णता के लिए प्रस्तुत करता हूं। चूंकि समय के साथ एक परियोजना पर कई स्कैन चलाए जाते हैं, इसलिए मुद्दों को अक्सर उपचार किया जाता है या अप्रचलित हो जाता है।चूंकि यह स्कैन परिणामों में विलय करता है, स्टेटिक कोड विश्लेषक उन मुद्दों को चिह्नित करता है जो पिछले स्कैन में अनदेखा थे, लेकिन अब हालिया एससीए विश्लेषण परिणामों में हटाए गए हैं। हटाए गए मुद्दों को समस्या पैनल में दिखाए गए समूह योग में शामिल नहीं किया गया है। चूंकि आप इस मुद्दे को "उपचार" करने का इरादा नहीं रखते हैं, यह "हटाई गई समस्या" नहीं बन जाएगा।

दबाने वाले, छिपे हुए और हटाए गए मुद्दों को दिखाने या छिपाने के लिए, विकल्प मेनू का उपयोग करें। दृश्यता फ़िल्टर मुद्दों को दिखा या छुपाएं।

+0

धन्यवाद, लेकिन मुझे पहले से ही पता है कि मैन्युअल रूप से समस्याओं को दबाने/छिपाने के लिए कैसे। यह प्रश्न विशेष रूप से जावा को एनोटेट करने के बारे में है ताकि झूठी सकारात्मकता को दबाया न जाए, लेकिन अस्तित्व में न हो। रिपोर्टों को मजबूत करें कि राज्य कितने दबाने वाले मुद्दे हैं, और चेतावनी देते हैं कि इनमें से बड़ी संख्या संदिग्ध हैं। – slim

+0

फोर्टिफ़ाई के अनुसार "पुस्तक समाधान" दबाएं और छिपाएं। "क्रेडेंशियल" जैसे पासवर्ड के समानार्थी का उपयोग करने के बारे में कैसे? – WaltHouser

+0

मुझे नहीं पता कि "पुस्तक समाधान" से आपका क्या मतलब है। एनोटेटिंग एक समर्थित तकनीक है - फोर्टिफ़ाई निर्देशिका में 'नमूने/उन्नत/java_annotations' देखें। @FortifyNotPassword स्थानीय चर और फ़ील्ड के लिए काम करता है - मैं बस एक विधि पैरामीटर के साथ ऐसा करना चाहता हूं। – slim

संबंधित मुद्दे