Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

सी # कोड से एमएसएसक्यूएल सर्वर पर एसक्यूएल इंजेक्शन से बचने के लिए एल्गोरिदम?

कोई एल्गोरिदम आवश्यक नहीं है - SQL कथन बनाने के लिए बस स्ट्रिंग कॉन्सटेनेशन का उपयोग न करें। इसके बजाय SqlCommand.Parameters संग्रह का उपयोग करें। यह सभी आवश्यक मूल्यों से बच निकलता है (जैसे कि ' . को बदलना '' . के साथ ) और सुनिश्चित करता है कि आदेश सुरक्षित रहेगा क्योंकि किसी और (यानी माइक्रोसॉफ्ट) ने सभी परीक्षण किए हैं।

जैसे एक संग्रहीत कार्यविधि को कॉल करना:

using (var connection = new SqlConnection("..."))
using (var command = new SqlCommand("MySprocName", connection))
{
    command.CommandType = CommandType.StoredProcedure;
    command.Parameters.AddWithValue("@Param1", param1Value);
    return command.ExecuteReader();
}

यह तकनीक इनलाइन SQL स्टेटमेंट्स के लिए भी काम करती है, उदा.

var sql = "SELECT * FROM MyTable WHERE MyColumn = @Param1";
using (var connection = new SqlConnection("..."))
using (var command = new SqlCommand(sql, connection))
{
    command.Parameters.AddWithValue("@Param1", param1Value);
    return command.ExecuteReader();
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. वर्तमान में SQL सर्वर में उपयोग की जा रही भाषा प्राप्त करें

  2. एसक्यूएल, संख्याओं की सहायक तालिका

  3. Microsoft SQL सर्वर में केवल दिनांक का उपयोग करके DATETIME फ़ील्ड को कैसे क्वेरी करें?

  4. SQL अद्यतन क्वेरी में कुल कार्य?

  5. SQL सर्वर लेनदेन संबंधी प्रतिकृति आंतरिक - भाग 2