अपने PHP कोड को सुरक्षित करें

  • मुख्य रूप से वेब हमले के कारण ओएस सर्वर और http सर्वर के अलावा उपयोगकर्ताओं (रूपों और यूआरएल आदि) से सुरक्षित डेटा सुनिश्चित करना महत्वपूर्ण है।
  • आपके php कोड को सुरक्षित करने के लिए 3 श्रेणियां हैं:

डेटा उपयोगकर्ताओं को मान्य

जब साइट उपयोगकर्ताओं को सामग्री को कैप्चर करने और भेजने की अनुमति देती है, तो यह प्रविष्टियों के प्रारूप (ई-मेल पता, टेलीफोन नंबर, उत्पादों की मात्रा) को इंगित करने के लिए पर्याप्त नहीं है। सर्वर की निगरानी की जानी चाहिए (जैसे PHP) यदि डेटा हैं हमारी अपेक्षा के लिए पारंपरिक। संपूर्ण संख्याओं को ध्यान में रखते हुए, उपयोगकर्ता द्वारा भेजे गए सभी डेटा को रूपांतरित करें:

URL या फ़ॉर्म से डेटा मान्य करें

प्राप्त किए गए लगभग सभी डेटा URL या फ़ॉर्म से हैं जो वेबमास्टर ने सेट किए हैं। लगभग सभी URL प्रदर्शन पैरामीटर नीचे के रूप में निर्दिष्ट कर रहे हैं:

/index.php?rub=25

इस पैरामीटर को हालांकि संशोधित नहीं किया जाना चाहिए। लेकिन यह नीचे के रूप में संभव है:

 /index.php?rub=0 /index.php?rub=/index.php?rub=aaaaAAAAAaaaa /index.php?rub=1+or+1 
  • यह देखना महत्वपूर्ण है कि URL या फ़ॉर्म के माध्यम से प्राप्त प्रारूप में डेटा के प्रकार चाहे जो भी अपेक्षित हो।
  • उसी को सत्यापित करने के लिए आप function filter_input () का उपयोग कर सकते हैं।
  • उदाहरण के लिए, यदि आपको एक उपयोगकर्ता से ईमेल के रूप में फ़ील्ड नाम के साथ प्रारूप पोस्ट से एक ईमेल प्राप्त हुआ है। आप उसी से उबर सकते हैं:

 $ ईमेल = filter_input (INPUT_POST, 'ईमेल', FILTER_VALIDATE_EMAIL); अगर ($ ईमेल) {// ईमेल एड्रेस प्रविष्टि वास्तव में एक मेल एड्रेस फॉर्मेट है} 

यह फ़ंक्शन कई चीजों को फ़िल्टर कर सकता है: आईपी एड्रेस, यूआरएल आदि। htmlentities () द्वारा प्रक्रिया के रूप में URL भेजने से पहले एन्कोडिंग स्ट्रिंग जैसे संशोधन हो सकते हैं।

  • "" |
  • केवल आईपीवी 4 प्रारूप के तहत एक आईपी एड्रेस को मान्य करने के लिए:

$ ip = filter_input (INPUT_GET, 'ip', FILTER_VALIDATE_IP | FILTER_FLAG_IPV4);

फिल्टर के लिए निम्न लिंक पर क्लिक करें:

//www.php.net/filter

URL की प्रदर्शित सामग्री छोड़ें

जब उपयोगकर्ता द्वारा दर्ज की गई सामग्री को स्क्रीन पर प्रदर्शित किया जाता है तो उसमें HTML या जावास्क्रिप्ट कोड होता है जो कि सुरक्षा को अनिवार्य बनाता है।

यदि HTML में प्रदर्शित होने वाली सामग्री: आपको HTML वर्णक को सभी वर्णों को समान HTML संस्थाओं में बदलने के लिए सेट करना होगा। इस प्रक्रिया को स्वचालित करने के लिए नीचे php फ़ंक्शन है:

इको htmlentities ($ _ REQUEST ['सामग्री']);

यदि सामग्री URL में प्रदर्शित होनी चाहिए: आपको सामग्री को urlencode करना होगा।

इस एन्कोडिंग को करने के लिए PHP के दो कार्य हैं: urlencode () और rawurlencode ()। इन दो कार्यों के बीच अंतर एक क्षेत्र का एन्कोडिंग है, जो पहले फ़ंक्शन में% 20 और दूसरे में "+" प्रदान करता है।

 इको '//www.website?valeur='.llencode($_REQUEST [' ईवू ']); 

यदि सामग्री को डेटाबेस में संग्रहीत किया जाना चाहिए: उपयोग किए गए डेटाबेस सर्वर में एक विशिष्ट भूमिका के साथ सभी वर्णों से बचना आवश्यक है। PHP और MySQL के लिए, फ़ंक्शन mysql_escape_string () पैरामीटर के रूप में पारित स्ट्रिंग में सभी संभावित हानिकारक वर्ण बनाता है।

 $ क्वेरी = 'परिपक्व होने वाली आईडी से चयन करें जहां उपयोगकर्ता = "'। mysql_escape_string ($ _ REQUEST ['उपयोगकर्ता')) '' '' 

ध्यान दें कि सर्वर PHP विकल्प Magic_quotes के साथ कॉन्फ़िगर किया गया है, उपयोगकर्ताओं द्वारा प्रेषित डेटा स्वचालित रूप से बैकस्लैश (बैकस्लैश) के साथ सुरक्षित है। इस प्रकार, mysql_escape_string की सुरक्षा करने से पहले, आपको इस मूल सुरक्षा को "पूर्ववत" करना चाहिए:

 $ क्वेरी = 'mytable से यूजर सेलेक्ट आइडी =' '। स्ट्रिप्सलैश (mysql_escape_string ($ _ REQUEST [' उपयोगकर्ता '))' '' '); 
पिछला लेख अगला लेख

शीर्ष युक्तियाँ