php - secure form data for mysql -


मैं उपयोग कर रहा हूं:

  यदि ($ _POST ['टिप्पणियां']! = "") {$ Comments = mysql_real_escape_string ($ _ POST ['टिप्पणियां']); } और {$ comments = ""; }   

जब से किसी उपयोगकर्ता ने अपने डेटा के लिए जोड़ा और अप्रार्थ्रफ़्रफ़ किया है और यह मेरे एसक्यूएल स्टेटमेंट को तोड़ दिया है। मैंने सोचा कि यह भी एक ही समय में डेटा सुरक्षित। लेकिन अभी मुझे एक डाटाबेस में एक सबमिशन और टिप्पणी के क्षेत्र में मिला है जो मैं देख रहा हूं:

  / r / r / r / r / r / r / r / r / r / r / r / आर / आर / आर / आर / आर / आर / आर / आर / आर / आर / आर / आर / आर / आर / आर / आर / आर / आर / आर / आर / आर / आर / आर / आर / आर / R / r / r / r / r / r / r / r / r / r & lt; a href = "http://seowebsite.com" & gt; seohelp & lt; / a & gt;   

और जब मैं कोई ईमेल सबमिट करता हूं, तो वास्तव में काम करने वाले लिंक्स के साथ पाठ होता है I

मैंने सोचा कि mysql_real_escape_string () को सब से छुटकारा पाना चाहिए था?

कोई सुझाव? मैं एक ऐसा कार्य करने की सोच रहा था जो मेरे लिए कुछ अलग-अलग चरणों में स्ट्रिंग सफाई करता है लेकिन अगर सिर्फ एक ही चरण में सुरक्षित रहने का एक तरीका है जो महान होगा।

केवल < > * आप क्रॉस-साइट स्क्रिप्टिंग (एक्सएसएस) के विरुद्ध नहीं एसक्यूएल इंजेक्शन के खिलाफ हैं।

* < कोड> SET NAMES क्योंकि यह इस्तेमाल किया जा रहा है वर्णक से अनजान है इसके बजाय प्रयोग करें।


एक्सएसएस से स्वयं को बचाने के लिए, आपको डालने के समय (पहले) या प्रदर्शन समय पर भी प्रयोग करना चाहिए।

 < कोड> $ बच गया = htmlspecialchars ($ स्ट्रिंग, ENT_QUOTES, 'UTF-8');   

यदि आप कुछ HTML सामग्री को अनुमति देना चाहते हैं, तो उन तत्वों और विशेषताओं की श्वेतसूची के साथ उपयोग करें जिन्हें आप अनुमति देना चाहते हैं।

Comments