Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để bảo vệ chống lại các cuộc tấn công SQL injection bằng cách sử dụng DBI của Perl?

Cách thích hợp để làm sạch dữ liệu để chèn vào cơ sở dữ liệu của bạn là sử dụng trình giữ chỗ cho tất cả các biến được chèn vào chuỗi SQL của bạn. Nói cách khác, KHÔNG BAO GIỜ làm điều này:

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

Thay vào đó, hãy sử dụng ? trình giữ chỗ:

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

Và sau đó chuyển các biến sẽ được thay thế khi bạn thực hiện truy vấn:

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

Bạn có thể kết hợp các thao tác này với một số phương pháp tiện lợi của DBI; ở trên cũng có thể được viết:

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

Xem tài liệu DBI để biết thêm thông tin.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bảng 'hố đen' có xấu xa không?

  2. CẬP NHẬT MySQL với số ngẫu nhiên từ 1-3

  3. Làm thế nào để viết một thủ tục được lưu trữ bằng phpmyadmin và làm thế nào để sử dụng nó thông qua php?

  4. Bảo mật mùa xuân chuyển sang xác thực Ldap và cơ quan cơ sở dữ liệu

  5. Node.js kết nối với vùng chứa MySQL Docker ECONNREFUSED