sql >> Databáze >  >> RDS >> Sqlserver

Zabránit vložení SQL v klauzuli ORDER BY

Pokud máte pokud chcete obchodovat s řetězci, pak je nejlepší volbou zařazení na bílou listinu. Nejprve sortDirection by měl být docela triviální pro white-list:malá a velká písmena v porovnání s "asc" / "desc" a měli byste být nastaveni. U ostatních bych preferoval přidat na seznam povolených známých sloupců , možná předáním očekávaného Type pro data a ověřování. Ale na absolutní špetku můžete pomocí regulárního výrazu omezit (řekněme) vynutit, že jsou všechny přísně alfanumerické (v rozsahu a–z, A–Z, 0–9 – v případě potřeby možná podtržítko) – a poté přidejte [] , tj.

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

Ale:přísný bílý seznam známých sloupců by byl mnohem lepší, stejně jako výčet směru.



  1. TINYINT vs ENUM(0, 1) pro booleovské hodnoty v MySQL

  2. Nové rodiny procesorů AMD se dobře porovnávají s novými procesory Intel

  3. Jak vytvářet a spouštět uložené funkce a procedury MySQL

  4. Proveďte více dotazů na odstranění SQL v mysql pro php