Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana saya bisa melindungi dari serangan injeksi SQL menggunakan DBI Perl?

Cara yang tepat untuk membersihkan data untuk dimasukkan ke dalam database Anda adalah dengan menggunakan placeholder untuk semua variabel yang akan dimasukkan ke dalam string SQL Anda. Dengan kata lain, JANGAN PERNAH melakukan ini:

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

Sebagai gantinya, gunakan ? tempat penampung:

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

Dan kemudian berikan variabel yang akan diganti saat Anda menjalankan kueri:

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

Anda dapat menggabungkan operasi ini dengan beberapa metode praktis DBI; di atas juga dapat ditulis:

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

Lihat dokumen DBI untuk informasi lebih lanjut.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Akses Koneksi Ditolak untuk pengguna www-data

  2. Kesalahan Hibernasi saat mempertahankan tipe data TEXT

  3. Bagaimana cara mengubah kode MySQL menjadi pernyataan PDO?

  4. Tidak dapat mengatur lower_case_table_names di MySQL 8.x di Windows 10

  5. Bagaimana cara membuat kueri tidak menghasilkan apa-apa ketika tidak ada kondisi?