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

MySQL параметризирани заявки

Внимавайте да използвате интерполация на низове за SQL заявки, тъй като тя няма да избяга правилно от входните параметри и ще остави приложението ви отворено за уязвимости при SQL инжектиране. Разликата може да изглежда тривиална, но в действителност е огромна .

Неправилно (с проблеми със сигурността)

c.execute("SELECT * FROM foo WHERE bar = %s AND baz = %s" % (param1, param2))

Правилно (с екраниране)

c.execute("SELECT * FROM foo WHERE bar = %s AND baz = %s", (param1, param2))

Това добавя към объркването, че модификаторите, използвани за свързване на параметри в SQL израз, варират между различните реализации на DB API и че клиентската библиотека mysql използва printf стилов синтаксис вместо по-често приемания '?' маркер (използван например от python-sqlite ).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Разлика между SELECT INTO и INSERT INTO в MySQL

  2. Вземете MySQL база данни чрез PHP към XML

  3. Грешка при миграция на Laravel:Синтактична грешка или нарушение на достъпа:1071 Посоченият ключ беше твърде дълъг; максималната дължина на ключа е 767 байта

  4. Настройте база данни и създайте потребител само за четене в AWS Redshift и Mysql

  5. Как да съхранявате данните в unicode на хинди език