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

Какво означава кодът след CREATE FUNCTION като низ?

PostgreSQL е много разширим и можете например да дефинирате свой собствен процедурен език, на който да пишете функции.

PostgreSQL не знае нищо за езика, освен че трябва да извика определен езиков манипулатор за изпълнение на функцията.

Начинът, който беше избран за прилагане на това, е да се опрости предаването на кода като низ.

Това е само детайл на изпълнението и не прави функциите на PostgreSQL повече или по-малко уязвими за SQL инжектиране в сравнение с други RDBMS.

Има няколко нива, на които трябва да се защитите срещу инжектиране:

  • Аргументите на функцията:Тук трябва да избирате ненизови типове данни, когато е възможно.

  • SQL операторите във функцията:Тук трябва да избягвате динамичен SQL, когато е възможно, и ако трябва да използвате динамичен SQL, трябва да вмъкнете променливи, като използвате %L модел на format функция.

Отново, това е същото, ако телата на функциите са посочени като низове или не.



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

  2. Грешка в механизма за заключване на PostgreSQL или неразбиране на механизма

  3. Готови ли сме за Nordic PPGDay?

  4. PostgreSQL броят пъти, когато поднизът се появява в текста

  5. Защо да използвате IS DISTINT FROM - Postgres