Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

क्या MySQL में डालने से पहले htmlspecialchars() का उपयोग करना अच्छा है?

जैसा कि अन्य ने बताया है, #2 सही उत्तर है। इसे तब तक "कच्चा" छोड़ दें जब तक आपको इसकी आवश्यकता न हो, फिर उचित रूप से बच जाएं।

क्यों (और मैं अन्य पोस्ट को दोहराऊंगा/सारांशित करूंगा) के बारे में विस्तार से बताने के लिए, आइए परिदृश्य 1 को उसके तार्किक चरम पर ले जाएं।

क्या होता है जब कोई " ' OR 1=1 <other SQL injection> -- . में प्रवेश करता है "। अब शायद आप यह तय करें कि क्योंकि आप SQL का उपयोग करते हैं, आपको SQL के लिए एन्कोड करना चाहिए (हो सकता है क्योंकि आपने पैरामीटरयुक्त कथनों का उपयोग नहीं किया है)। तो अब आपको SQL और HTML एन्कोडिंग को मिलाना (या तय करना) है।

अचानक आपका बॉस फैसला करता है कि वह एक एक्सएमएल आउटपुट भी चाहता है। अब अपने पैटर्न को एक जैसा बनाए रखने के लिए आपको उसके लिए भी एनकोड करना होगा।

अगला सीएसवी - अरे नहीं! क्या होगा यदि पाठ में उद्धरण और अल्पविराम हैं? अधिक बच निकलना!

अरे - कैसे एक अच्छा इंटरैक्टिव, AJAX इंटरफ़ेस के बारे में? अब आप शायद JSON को ब्राउज़र पर वापस भेजना शुरू करना चाहते हैं, इसलिए अब {, [आदि। सभी को ध्यान में रखा जाना चाहिए। मदद!!

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

मुझे आशा है कि यह उत्तर बहुत अधिक संरक्षण देने वाला नहीं है। अन्य उत्तरदाताओं को श्रेय।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. चाइल्ड पंक्ति को जोड़ या अपडेट नहीं कर सकता:एक विदेशी कुंजी बाधा विफल हो जाती है

  2. डेटाग्रिडव्यू में प्रारूप के साथ डेटा प्रदर्शित करें

  3. इस त्रुटि को कैसे रोकें:चेतावनी:mysql_fetch_assoc () पैरामीटर 1 को संसाधन, बूलियन में दिए जाने की अपेक्षा करता है ... लाइन 11 पर

  4. MySQL कार्यक्षेत्र में एक डेटाबेस आरेख बनाएँ

  5. एलपीएडी () फ़ंक्शन MySQL में कैसे काम करता है