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

Предотвратяване на SQL инжектиране в клаузата ORDER BY

Акоимате за работа с низове, тогава белият списък е най-добрият ви залог. Първо, sortDirection трябва да е доста тривиално за белия списък:нечувствително към малки и главни букви в сравнение с "asc" / "desc" и трябва да сте настроени. За останалите моето предпочитание би било белият списък към известни колони , може би чрез предаване на очаквания Type за данните и валидирането. Но в абсолютен край, можете да ограничите с регулярен израз, за ​​да (да речем) наложите всички те да са стриктно буквено-цифрови (в диапазона a-z, A-Z, 0-9 - може би долна черта, ако е необходимо) - и след това добавете [] , т.е.

return string.Format("[{0}] {1}", sortColumn, sortDirection);

Но:строгият бял списък с известни колони би бил много по-добър, както и изброяването за посоката.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ALTER TABLE на зависима колона

  2. Инсталиране на клъстер за отказване на SQL сървър -4

  3. Как да върна XML от SQL Server 2008, който е структуриран с множество селекции, споделящи общ родител

  4. T-SQL:проблем с низ concat

  5. Как мога да променя тази изчислена колона в SQL Server 2008?