sql >> Databáze >  >> RDS >> Oracle

Prevence vkládání SQL pomocí dynamického dotazu SQL ALTER USER

Neměli byste se snažit zabránit vkládání SQL pouze na úrovni databáze. Jakmile se tam dostali, většinou už dostali vás. Měli byste použít parametry, maskovat vstup a odstranit špatné znaky již ve vrstvě výše. Nástroje (Frameworks?) jako Entity Framework automaticky odstraňují nebezpečné znaky.

Pomocí DBMS_ASSERT.ENQUOTE_NAME se zde daří velmi dobře, ale doporučil bych to udělat také ve vrstvách výše.

Obecné pravidlo (které zde dodržujete):Používejte zavedené a osvědčené bezpečnostní mechanismy, nevynalézejte je znovu!

Navíc prohlášení jako

select * from users where username = 'IAm"WayUp';

je naprosto legální a není nebezpečný.

A jak voláte funkci/proceduru v DB? I tam jsi zranitelný, že?.




  1. Připojte se ke dvěma tabulkám a získejte nejnižší cenu s více podmínkami (více sku)

  2. Transakce MySQL

  3. jak se dotazovat na spojovací tabulku pomocí hibernace?

  4. Jak přidat funkci levenshtein do mysql?