2010-08-30 13 views
9

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

आप कौन सी लाइब्रेरी की सिफारिश करेंगे?

+0

संभव डुप्लिकेट (http://stackoverflow.com/questions/3587199/how-to-purify-html-code-to-prevent-xss-attacks-in-java-or-jsp) और [एक्सएसएस को पकड़ने के लिए सर्वश्रेष्ठ रेगेक्स (क्रॉस-साइट स्क्रिप्टिंग) हमला (जावा में)?] (http://stackoverflow.com/questions/24723/best-regex-to-catch-xss-cross-site-scripting-attack-in-java) – BalusC

+0

@ बालससी - सच। – ripper234

उत्तर

6

आपको AntiSamy का उपयोग करना चाहिए। (That's what I did)

+0

मुझे लगता है कि एंटीस्मी एक एक्सएसएस प्रदर्शन किए जाने पर पहचान की कार्यक्षमता प्रदान नहीं करता है। क्या आप एक पुस्तकालय का सुझाव दे सकते हैं जो इसका पता लगाने में मदद करेगा? – Siddharth

+1

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

1

यदि आप उपयोगकर्ताओं से एचटीएमएल स्वीकार करना चाहते हैं, तो एंटीसामी या जेएसओपी की तरह कुछ समझ में आता है। हालांकि, अगर आप सिर्फ escapers का एक अच्छा सेट चाहते हैं, आप एक पुस्तकालय जैसे CSL

उपयोग कर सकते हैं हम की नकल पुस्तिकाओं ऑनलाइन दिखाता है कि कितनी एचटीएमएल संदर्भों में इसका इस्तेमाल करने (aka HTML constructs) है:

+0

सुरक्षा सत्यापन उद्देश्यों के लिए Jsoup का उपयोग न करें। Jsoup का डिज़ाइन अमान्य HTML को "ठीक" करना है, और कई XSS हमलों जानबूझकर अमान्य हैं ... इसलिए Jsoup इसे "ठीक करता है" और आपकी सत्यापन संभवतः इसे अच्छी तरह से झुका देती है। – avgvstvs

2

महान विभिन्न स्थितियों में XSS हमलों के बाद ढेर में पोस्ट किया जाता है को रोकने के लिए कैसे पोस्ट: Avoid XSS and allow some html tags with JavaScript

+0

मैं ऐसा करने के लिए जावास्क्रिप्ट का उपयोग करने से दूर रहूंगा - इन दिनों अधिकांश हमले डोम-आधारित हैं, और जावास्क्रिप्ट में एक बंदरगाह नामक तकनीक है जो किसी हमलावर को किसी क्लाइंट-साइड फ़ंक्शन पर नियंत्रण रखने की अनुमति दे सकती है। – avgvstvs

+0

@avgvstvs अगर हमलावर पहले से बंदर पैचिंग करने की क्षमता तक पहुंच प्राप्त कर लेता है, तो वह मूल रूप से कुछ भी कर सकता है जो वह एक्सएसएस के माध्यम से करने में सक्षम होगा। –

+0

@MatthijsWessels मेरा मुद्दा यह है कि एक वेब डेवलपर के रूप में, फ्रंट एंड बस * किसी भी * प्रकार की एक्सएसएस रोकथाम को लागू करने के लिए * गलत * जगह है, क्योंकि ब्राउज़र में ब्राउज़र पर क्या चल रहा है पर सर्वर का शून्य नियंत्रण होता है। ब्राउजर अविश्वसनीय है, हर समय। – avgvstvs

0

मैं बहुत सफलता के साथ OWASP एचटीएमएल सफ़ाई परियोजना का उपयोग किया है।

https://www.owasp.org/index.php/OWASP_Java_HTML_Sanitizer_Project

नीतियाँ परिभाषित किया जा सकता है (या पूर्वनिर्धारित नीतियों इस्तेमाल किया जा सकता) है कि आप को नियंत्रित करने के क्या HTML तत्वों के प्रकार स्ट्रिंग पर अनुमति दी जाती है सत्यापित किया जा रहा/स्वच्छ सक्षम करें। एक श्रोता का उपयोग किया जा सकता है क्योंकि यह निर्धारित करने के लिए कि कौन से तत्व अस्वीकार कर रहे हैं, एचटीएमएल को सैनिटाइज्ड किया गया है, जिससे आपको क्लाइंट को यह संवाद करने के तरीके के बारे में लचीलापन मिल रहा है। एक आसान कार्यान्वयन के अलावा, मुझे यह लाइब्रेरी भी पसंद है क्योंकि यह ओडब्ल्यूएएसपी द्वारा उत्पादित और रखरखाव किया जाता है, एक लंबे समय तक संगठन जिसका उद्देश्य वेब सुरक्षा है।

0

मैं सहायक हो सकता है कैसे OWASP पुस्तकालय का उपयोग कर अपने आदानों को साफ़ करने में, हो सकता है पर एक ब्लॉग पोस्ट में लिखा था https://leantechblog.wordpress.com/2017/04/08/preventing-xss-sanitize-app-inputs/

की [कैसे जावा या JSP में XSS हमलों को रोकने के एचटीएमएल कोड "शुद्ध" करने के लिए?]
संबंधित मुद्दे