ms-access
परिमाणित प्रश्न
खोज…
परिचय
Parameterized क्वेरीज़ का उपयोग SQL इंजेक्शन हमलों से बचाव के लिए किया जा सकता है।
कमजोर करने योग्य दृष्टिकोण: प्रपत्र संदर्भों के साथ संबंधित SQL स्ट्रिंग
यह SQL एक्शन क्वेश्चंस बनाने वाले नौसिखिए डेवलपर्स के लिए विशिष्ट दृष्टिकोण है। वे बॉबी टेबल टाइप एसक्यूएल इंजेक्शन हमलों के लिए कमजोर हैं।
Dim strSQL As String
strSQL = "INSERT INTO Employees chrFirstName, chrLastName, chrPhone " _
& "VALUES ('" & Me!txtFirstName & "','" & Me!txtLastName & "','" & Me!txtPhone & "');"
CurrentDb.Execute strSQL
QueryDef Parameterized क्वेरी दृष्टिकोण
यह दृष्टिकोण एक उपयोगकर्ता को निष्पादन के लिए उनके इनपुट में एक दूसरे SQL कथन को एम्बेड करने से रोकेगा।
Dim strSQL As String
Dim db As DAO.Database
Dim qdf As DAO.QueryDef
strSQL = "PARAMETERS [FirstName] Text(255), [LastName] Text(255), [Phone] Text(255); " _
& "INSERT INTO Employees (chrFirstName, chrLastName, chrPhone) " _
& "VALUES ([FirstName], [LastName], [Phone]);"
Set db = CurrentDb
Set qdf = db.CreateQueryDef("", strSQL)
qdf.Parameters("FirstName") = Me!txtFirstName
qdf.Parameters("LastName") = Me!txtLastName
qdf.Parameters("Phone") = Me!txtPhone
qdf.Execute
Me!txtFirstName = vbNullString
Me!txtLastName = vbNullString
Me!txtPhone = vbNullString
qdf.Close
db.Close
Set qdf = Nothing
Set db = Nothing
मान्य पैरामीटर प्रकार:
-
DATETIME: दिनांक के लिए (पैरामीटर VBADateअपेक्षा करता है) -
SHORT,LONG: पूर्णांक के लिए (SHORTपूर्णांक की अपेक्षा करता है,LONGउम्मीद है) -
SINGLE,DOUBLE: फ़्लोटिंग पॉइंट के लिए (क्रमशः सिंगल और डबल की उम्मीद करें) -
VARCHARयाTEXT: तार के लिए -
MEMOयाLONGTEXT: 255 से अधिक वर्णों के लिए तार
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow