कैसे PHP में एक एसक्यूएल इंजेक्शन से बचने के लिए
इस विकीहे गाइड के साथ आप जानेंगे कि एसक्यूएल इंजेक्शन से बचने के लिए PHP में तैयार वाक्य का उपयोग कैसे करें। आजकल, एसक्यूएल इंजेक्शन वेब अनुप्रयोगों की सबसे आम कमजोरियों में से एक है। तैयार बयान लिंक किए गए मापदंडों का उपयोग करते हैं और एसक्यूएल तारों के साथ चर को संयोजित नहीं करते हैं, जो किसी हमलावर को एसक्यूएल स्टेटमेंट को संशोधित करने के लिए असंभव बनाता है।
तैयार बयान संकलित एसक्यूएल कथन के साथ चर को मिलाते हैं। इस तरह, एसक्यूएल स्टेटमेंट्स और वेरिएबल्स को अलग से भेजा जाता है। वेरिएबल को सरल स्ट्रिंग के रूप में समझाया जाता है और एसक्यूएल स्टेटमेंट के भाग के रूप में नहीं। यदि नीचे वर्णित चरणों के तरीकों को लागू किया गया है, तो किसी भी अन्य प्रकार के एसक्यूएल इंजेक्शन फ़िल्टरिंग तकनीक का उपयोग करना जरूरी नहीं है, जैसे कि mysql_real_escape_string ()
सामग्री
चरणों
भाग 1
समझे कि एसक्यूएल इंजेक्शन क्या है
Video: Python Web Apps with Flask by Ezra Zigmond
$ name = $ _GET [`उपयोगकर्ता नाम`] - $ query = "Tbl_user नाम का नाम चुनें = `$ name` "-
$ नाम = "व्यवस्थापक `या 1 = 1 - "- $ query = "Tbl_user नाम का नाम चुनें = `$ name` "-
Tbl_users से पासवर्ड का चयन करें जहां नाम = `व्यवस्थापक` या 1 = 1 - `
भाग 2
तैयार कथनों को बनाने के लिए mySQLi का उपयोग करें
MySQLi के साथ तैयार किए गए एक बयान का उपयोग करके एक तालिका से (SELECT) डेटा का चयन करने के लिए नीचे दिए गए कोड का उपयोग करें
$ name = $ _GET [`उपयोगकर्ता नाम`] - यदि ($ stmt = $ mysqli->तैयारी ("Tbl_users से चयन करें शब्द कहाँ नाम =?")) {// स्ट्रिंग के रूप में पैरामीटर के साथ एक चर में शामिल करें $ stmt->बाँध_परम ("रों", $ नाम) - // वाक्य को निष्पादित करें $ stmt->execute () - // क्वेरी के चर प्राप्त करें $ stmt->bind_result ($ pass) - // डेटा प्राप्त करें $ stmt->फ़ेच () - // डाटप्रिंटफ प्रदर्शित करता है ("उपयोगकर्ता का पासवर्ड% s है% s n", $ नाम, $ पास) - // तैयार बयान $ stmt->बंद () -}
- नोट: चर $ mysqli mySQLi का कनेक्शन ऑब्जेक्ट है
Video: Review: Quiz 1
$ नाम = $ _GET [`उपयोगकर्ता नाम`] - $ पासवर्ड = $ _GET [`पासवर्ड`] - यदि ($ stmt = $ mysqli->तैयारी ("Tbl_users (नाम, पासवर्ड) मूल्यों में शामिल करें (?,?)")) {// स्ट्रिंग के रूप में पैरामीटर के लिए चर को लिंक करें $ stmt->बाँध_परम ("एस एस", $ नाम, $ पासवर्ड) - // वाक्य $ stmt->निष्पादित करें () - // तैयार बयान $ stmt->बंद () -}
Video: Week 10, continued
$ नाम = $ _GET [`उपयोगकर्ता नाम`] - $ पासवर्ड = $ _GET [`पासवर्ड`] - यदि ($ stmt = $ mysqli->तैयारी ("अद्यतन tbl_users सेट = पासवर्ड? नाम कहाँ है?")) {// स्ट्रिंग के रूप में पैरामीटर के लिए चर को लिंक करें $ stmt->बाँध_परम ("एस एस", $ पासवर्ड, $ नाम) - // वाक्य को निष्पादित करें $ stmt->निष्पादित करें () - // तैयार बयान $ stmt->बंद () -}
$ नाम = $ _GET [`उपयोगकर्ता नाम`] - $ पासवर्ड = $ _GET [`पासवर्ड`] - यदि ($ stmt = $ mysqli->तैयारी ("Tbl_users कहाँ से हटाएं नाम =?")) {// स्ट्रिंग के रूप में पैरामीटर के साथ एक चर में शामिल करें $ stmt->बाँध_परम ("रों", $ नाम) - // वाक्य को निष्पादित करें $ stmt->निष्पादित करें () - // तैयार बयान $ stmt->बंद () -}
- कैसे एक किशोर हैकर बनने के लिए
- कैसे SQL सर्वर में एक डेटाबेस बनाने के लिए
- वेब के लिए सुरक्षित कार्यक्रम कैसे विकसित करें
- ओरेकल में अपना खाता कैसे अनलॉक करें
- कैसे PostgreSQL की स्थापना रद्द करें
- एमएस एक्सेस 2007 में एक क्वेरी कैसे चलाने के लिए
- ओरेकल में डुप्लिकेट रिकॉर्ड्स को कैसे हटाएं
- SQL सर्वर से एक प्रोग्राम HTML रिपोर्ट कैसे भेजनी है
- डेटाबेस से हाइबरनेट के साथ पॉजो कक्षाएं और XML मैपिंग कैसे उत्पन्न करें I
- कैसे एक वेबसाइट हैक करने के लिए
- कैसे एक डेटाबेस हैक करने के लिए
- माइक्रोसॉफ्ट एक्सेल में एसक्यूएल क्वेरी कैसे डालें
- एक पीसी पर एक MySQL सर्वर को कैसे स्थापित करें
- MySQL कमांड लाइन में SQL क्वेरी कैसे भेजें
- इंजेक्शन कैसे प्राप्त करें
- CPANEL का उपयोग कर एक जूमला वेबसाइट बैकअप कैसे करें
- SQL सर्वर में एसए पासवर्ड को पुनर्स्थापित कैसे करें
- एसक्यूएल का प्रयोग कैसे करें
- जावास्क्रिप्ट इंजेक्शन का उपयोग कैसे करें
- PHP के साथ एक MySQL डाटाबेस का उपयोग कैसे करें
- कैसे PHP और MySQL सीखने के लिए