Bobby Tabulky: návod k zabránění SQL injection

0 Comments

Proč Bobby“škola ztratí jejich záznamy?

škola zřejmě ukládá jména svých studentů do tabulky s názvem studenti. Když přijde nový student, škola vloží své jméno do této tabulky. Kód dělá vložení může vypadat takto:

první řádek vytvoří řetězec obsahující SQL příkaz INSERT. Obsah proměnné $studentName je vložen do příkazu SQL., Druhý řádek odešle výsledný příkaz SQL do databáze. Úskalí tohoto kódu je, že mimo údaje, v tomto případě obsah $studentName, se stává součástí SQL příkazu.

nejprve uvidíme, jak vypadá příkaz SQL, pokud vložíme studenta jménem John:

to dělá přesně to, co chceme: vloží Johna do tabulky studentů.

nyní vložíme malé Bobby tabulky nastavením $studentName na Robert"); DROP TABLE Students;--., Příkaz SQL se stává:

tím se Robert vloží do tabulky studentů. Po příkazu INSERT však nyní následuje příkaz DROP TABLE, který odstraní celou tabulku studentů. AU!

Jak se vyhnout Bobby Tabulky

Tam je jen jeden způsob, jak se vyhnout Bobby Tabulky útoky

  • vytvořit příkazy SQL, které zahrnují mimo data.
  • použijte parametrizované volání SQL.

to je ono. Nesnažte se uniknout neplatné znaky. Nesnažte se to udělat sami. Naučte se používat parametrizované příkazy. Vždy, pokaždé.,

proužek dostane jednu věc zásadně špatně. Odpověď není „dezinfikovat své databázové vstupy“ sami. Je náchylný k chybám.


Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *