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

मैं पर्ल के डीबीआई का उपयोग करके एसक्यूएल इंजेक्शन हमलों के खिलाफ कैसे रक्षा कर सकता हूं?

अपने डेटाबेस में डालने के लिए डेटा को साफ करने का उचित तरीका प्लेसहोल्डर्स का उपयोग करना है। सभी चरों को आपके SQL स्ट्रिंग्स में सम्मिलित करने के लिए। दूसरे शब्दों में, ऐसा कभी न करें:

my $sql = "INSERT INTO foo (bar, baz) VALUES ( $bar, $baz )";

इसके बजाय, ? . का उपयोग करें प्लेसहोल्डर:

my $sql = "INSERT INTO foo (bar, baz) VALUES ( ?, ? )";

और फिर जब आप क्वेरी निष्पादित करते हैं तो बदले जाने वाले चरों को पास करें:

my $sth = $dbh->prepare( $sql );
$sth->execute( $bar, $baz );

आप इन कार्यों को कुछ डीबीआई सुविधा विधियों के साथ जोड़ सकते हैं; ऊपर भी लिखा जा सकता है:

$dbh->do( $sql, undef, $bar, $baz );

देखें DBI डॉक्स अधिक जानकारी के लिए।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - समूह और कुल, लेकिन प्रत्येक समूह में सभी पंक्तियां लौटाएं

  2. मैं एक mysql थ्रेड स्टैक ओवररन को कैसे हल करूं?

  3. दो अलग-अलग तालिकाओं में दो कॉलम के डेटा के अस्तित्व की जांच कैसे करें? माई एसक्यूएल

  4. mysql में html इनपुट से डेटा खोजें

  5. MySQL में अग्रणी / अनुगामी वर्णों के साथ एक स्ट्रिंग को कैसे पैड करें - LPAD (), RPAD ()