"पर्याप्त स्वच्छता" पूरी तरह से इस बात पर निर्भर करता है कि आप किस पर्यावरण के बारे में बात कर रहे हैं। MySQL के लिए स्वच्छता को पूरी तरह से अलग माना जाना चाहिए वेब आउटपुट के लिए सैनिटाइजेशन से, और बहुत परेशानी से बचने के लिए आपको उन्हें अलग से संभालना चाहिए।
MySQL के लिए सैनिटाइज़ करना
mysql_real_escape_string()
डेटा के एक टुकड़े को साफ कर देगा और इसे SQL क्वेरी के अंदर रखना सुरक्षित बना देगा।- किसी भी अन्य प्रकार के दुर्भावनापूर्ण डेटा, जैसे स्ट्रिंग के अंदर HTML टैग, को बिल्कुल अनदेखा कर देना चाहिए। इसे यहां हेरफेर करने की कोशिश करने से आपको सिरदर्द हो जाएगा क्योंकि आप इसे डेटाबेस से बाहर निकालने के बाद बाद में "अन-हेरफेर" करने का प्रयास करेंगे। खराब "वेब डेटा" आपके डेटाबेस को नुकसान नहीं पहुंचा सकता।
आउटपुट के लिए सैनिटाइज़ करना
htmlspecialchars($val)
आउटपुट समय पर किसी भी दुर्भावनापूर्ण टैग को रेंडर होने से रोकेगा, क्योंकि<
और>
वर्णों को उनके निकाय प्रतिनिधित्व में बदल दिया जाता है और टैग सीमांकक के रूप में प्रस्तुत नहीं किया जाता है।ENT_QUOTES
का उपयोग करें संशोधक यदि आप कुछ ऐसा आउटपुट कर रहे हैं जो HTML तत्व की उद्धृत विशेषता के अंदर है, जैसे<input name="email" value="<?php echo htmlspecialchars($email,ENT_QUOTES); ?>" />
जब तक आपके पास विशेष आवश्यकताएं न हों, तब तक आपको बस इतना ही चाहिए। strip_tags()
वास्तव में स्वच्छता के लिए उपयोग नहीं किया जाना चाहिए, क्योंकि इसे बुरी तरह से गठित HTML के साथ मूर्ख बनाया जा सकता है। स्वच्छता एक योग्य लक्ष्य है, और यदि आप अपने संदर्भों को अलग रख सकते हैं, तो आप उनके बीच डेटा हेरफेर के साथ कम समस्याओं में भाग लेंगे।