Autor Zpráva
jannie
Profil *
Zdravím.

Proti SQL injection se prý dá bránit funkci mysql_real_escape_string() . Mám jí tedy u přihlašovacího formuláře do administrace. Má smysl tuto funkci používat i na formulář v administrací - přidávání nového článku?
Mastodont
Profil
Tu funkci používej VŠUDE, kde předáváš parametry do SQL příkazu.
jannie
Profil *
A stačí tedy jen tato funkce? Nebo to ošetřujete ještě nějak jinak?
panther
Profil
jannie:
pro řetězce tato, pro hesla hashe, pro čísla ověřování int typu, případně přetypování.
jannie
Profil *
hashe, ok

a ty čísla tedy - kdekoliv vstupuje do parametru sql příkazu číslo budu zkoumat, zda is_int(), is_double(), is_float() ? Takto?
Mastodont
Profil
Stačí přetypovat:
"WHERE celočíselný_sloupec = " . (int) $proměnná
"WHERE číselný_sloupec = " . (double) $proměnná
jannie
Profil *
To vypadá docela jednoduše, díky.
pcmanik
Profil
Zrejme si zaciatocnik, ale bolo by dobre si pozriet prepare_statement je to az v rozsireni mysqli, ale ulahcuje to pracu, nemusis sa starat o ziadne escapovanie.
jannie
Profil *
Díky za tip! Podívám se na to :)
ab
Profil *
Jakej prepare_statement? nejaky vic info ? diky
Alphard
Profil
[#10] ab
Jsou to připravené dotazy, které se pošlou na server. Pak při každém dotazu stačí poslat parametry a zavolat daný předpřipravený dotaz. Lze si to představit jako funkce, ale zdůrazňuji, že uživatelsky definované funkce jsou ještě něco jiného.
Tímto se ušetří parsování dat a zvýší se bezpečnost, protože použití parametrů zamezí sql injection.
Líbí se mi MySQL Prepared Statements a možná Prepared Statements. Jestli vládnete lépe slovenštinou než angličtinou, třeba MySQL (69) - Prepared Statements.

Práce s nimi v PHP je pěkně vidět na Prepared statements and stored procedures, u PDO konkrétně PDO::prepare.

Mně ale PDO k srdci nepřirostlo, takže doporučuji podívat se na dibi. Je do databázová vrstva, která výrazně usnadňuje práci. Mj. při přímém sestavování dotazu podporuje parametry a data automaticky ošetřuje.
ybznek
Profil
Já to řeším tak, že si zavolám fci, která rekurzivně escapuje(+entituje) všechny hodnoty v _GET a _POST

asi to není ideální, ale přišlo mi to jako nejjednodušší řešení bez využití frameworku

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: