Mysql
 sql >> база данни >  >> RDS >> Mysql

Как мога да се предпазя от атаки с инжектиране на SQL, използвайки DBI на Perl?

Правилният начин за саниране на данни за вмъкване във вашата база данни е да използвате заместители за всички променливи, които да бъдат вмъкнати във вашите 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 );

Можете да комбинирате тези операции с някои от методите за удобство на DBI; горното също може да бъде написано:

$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 1449:Потребителят, посочен като дефинер, не съществува

  2. Как да използвате python mysqldb за вмъкване на много редове наведнъж

  3. java.sql.SQLException:Броят на колоните не съвпада с броя на стойностите при грешка на ред 1

  4. Мониторинг на производителността на MySQL с ClusterControl

  5. Пребройте броя на отделните редове за множество стойности