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

SqlParameter не позволява име на таблица - други опции без атака на sql инжекция?

Отидете на бял списък. Може да има само фиксиран набор от възможни така или иначе правилни стойности за името на таблицата - поне, така че се надявам.

Ако нямате бял списък с имена на таблици, можете да започнете с бял списък от знаци - ако го ограничите до A-Z, a-z и 0-9 (без пунктуация изобщо), тогава това би трябвало да премахне голяма част от притесненията. (Разбира се, това означава, че не поддържате таблици със странни имена... ние всъщност не знаем вашите изисквания тук.)

Но не, не можете да използвате параметри нито за имена на таблици, нито за колони - само стойности. Това обикновено е така в базите данни; Не си спомням да съм виждал такъв, който направи поддържащи параметри за това. (Смея да твърдя, че има такива, разбира се...)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. UNION ALL гарантира ли реда на резултатния набор

  2. Предайте таблицата като параметър в UDF на sql сървъра

  3. операцията не е разрешена, когато обектът е затворен, когато се изпълнява по-разширена заявка

  4. Как да промените типа данни на колона в SQL Server (T-SQL)

  5. Как да определим броя на дните в месеца в SQL Server?