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

Къде да използвате mysql_real_escape_string за предотвратяване на SQL инжектиране?

По принцип всеки път, когато използвате някои опасни данни (въведени от потребителя, стойност от база данни, файл или външен уебсайт, т.е. всякакви данни, които не сте 100% сте сигурни, че е безопасно) в SQL заявка, трябва да го избягате, като използвате mysql_real_escape_string . Имайте предвид, че съгласно OWASP , тази функция не е защитена за избягване на имена на динамични таблици (но това е много по-рядко от вмъкването на „основно“ въвеждане на потребител).

Предлагам ви да разгледате цялата статия на OWASP за SQL инжектиране , както и да разглеждате останалата част от уебсайта. Това е чудесен източник на информация за сигурността в уеб приложенията.

IMO, предпочитаният начин за предотвратяване на SQL инжектиране е да използвате подготвени изявления .

Моля, не забравяйте, че ако решите да използвате mysql_real_escape_string() работи само когато се използва вътре в низ, който е разделен с кавички. Никога не го използвайте за каквито и да било стойности без цитати. Това включва числови стойности; вместо това потвърдете, че въведеното от потребителя всъщност е числово.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да се показват филтрирани данни в JFreeChart

  2. Вземете първи/последни n записа на група от

  3. Проблем с връзката с Ruby on rails

  4. Какво е значението на цитирани знаци с силен акцент (известен още като backtick) в MySQL?

  5. създайте mysql таблица, ако тя не съществува