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

Използването на mysqli_real_escape_string достатъчно ли е, за да защити моя низ за заявка?

Ако се използва навсякъде правилно real_escape_string е опция. Но помислете за следния код:

$page = $_GET['page'];
$sql = 'SELECT `name` FROM `user` WHERE `id` = ' . mysqli_real_escape_string($page);

Безопасно или не? real_escape_низ може да се използва само за екраниране на низове в кавички. $page може да бъде 1 OR id IN (2,3,4,5,6,7,8,9) → без кавички, без реално бягство. Прехвърлянето към правилния тип данни (int) може да помогне в този случай. По-добре е да използвате подготвени отчети, те не са толкова лесни за злоупотреба.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Източникът на данни отхвърли установяване на връзка, съобщение от сървъра:Твърде много връзки

  2. Няма модул с име MySQLdb, дори ако е инсталиран MySQL-python?

  3. Изпълнение на .sql скрипт с помощта на MySQL с JDBC

  4. Обща грешка:1366 Неправилна стойност на цяло число с актуализация на Doctrine 2.1 и Zend Form

  5. Грешка при запазване на @Lob с хибернация на java mysql