मैं एएसपी.Net सी # + jQuery AJAX वेबसाइट प्रोजेक्ट पर काम कर रहा हूं। मैं xss हमलों को रोकने की कोशिश कर रहा हूं और मुझे पता है कि नीचे पूर्ण दृष्टिकोण नहीं है, लेकिन कम से कम मुझे यह करना चाहिए - उपयोगकर्ताओं से मुफ्त स्ट्रिंग इनपुट स्वीकार करते समय HTML HTML को उपयोग करने के लिए)। और मैं वास्तव में किसी को कृपया जांच कर रहा हूं कि मैं सही काम कर रहा हूं या नहीं।एक्सएसएस हमले को रोकें
तो मान लें कि हमारे पास एक परिदृश्य है जिसके लिए पृष्ठ नियंत्रण में से एक "विवरण" टेक्स्ट बॉक्स है और उपयोगकर्ता अपने उत्पाद का वर्णन करने के लिए उपयोग की जाने वाली "मुक्त" स्ट्रिंग दर्ज कर सकते हैं। एक्सएसएस हमलावर इनपुट प्राप्त करने से रोकने के लिए, सर्वर साइड पेज विधि पर, मैंने HtmlUtility.HtmlEncode()
का उपयोग करके "विवरण" टेक्स्ट लपेट लिया है, इसलिए डेटाबेस में जाने से पहले स्ट्रिंग को शुद्ध पाठ के रूप में व्याख्या किया जाएगा i.e. <script>
>script<
बन जाता है।
जो भाग मैं अनुसरण करता हूं वह है कि मुझे संदेह है - इसे वापस करने से पहले एचटीएमएल एन्कोडेड टेक्स्ट को कैसे संभालना है?
जब उपयोगकर्ता विवरण टेक्स्ट दर्ज करना चाहता है, तो वेबसाइट डेटाबेस से पुनर्प्राप्त की जाती है और इसे प्रिंट करती है।
क्या यह वर्णन पर एचटीएमएल डिकोड करने के लिए तार्किक है ताकि उपयोगकर्ता उन wierd ><
अक्षरों को नहीं देख पाएंगे? क्या यह पहले स्थान पर HtmlEncode का उपयोग करने के उद्देश्य को हरा देगा? और यदि हां, क्या यह सही jQuery लाइन को उपयोगकर्ताओं को पाठ को डीकोड और प्रिंट करने के लिए है ???
$("#txtDescription").val($(this).html(obj.Description).text();
आप बहुत बहुत
हाय कोलिंक, आपके उत्तर के लिए धन्यवाद :)। टेक्स्ट को अपने कच्चे unfiltered रूप के साथ डेटाबेस में सहेजना बेहतर होगा, लेकिन फिर मेरे सिस्टम को डेटाबेस में जाने से पहले रैपिंग की आवश्यकता होगी, और किसी भी तरह से, मुझे यकीन नहीं है कि इसे वापस प्रिंट कैसे करें उपयोगकर्ता – user1487182
क्या हम उपयोगकर्ताओं को अजीब पात्रों को प्रिंट करना चाहते हैं या प्रिंटिंग से पहले अक्षर को डीकोड करना सामान्य अभ्यास है? यदि हां, तो उस हिस्से को कैसे संभालें? मैं उन मूल्यों को पाठ बॉक्स में वापस प्रिंट करना होगा और ऐसा लगता है जैसे " > < स्क्रिप्ट > चेतावनी (' ' XSS) </लिपि > बहुत बहुत धन्यवाद – user1487182
यह मददगार होगा बातें दिख रहा है अगर किसी राज्य क्यों तुम सांकेतिक शब्दों में बदलना नहीं चाहिए पाठ डेटाबेस में जा रहा है ... खासकर जब उत्तर में 5 अप वोट हैं (पृष्ठ पर सबसे अधिक)। – EleventyOne