Autor Zpráva
clasic
Profil *
Dobrý den, chci se zeptat na obranu sql injection. Jestli stačí jak na dotazy, tak i na insert zabalit text do strip_tags nebo jestli by bylo něco bezpečnějšího? Děkuju
Taps
Profil
clasic:
pro řetězce používej funkci
mysql_real_escape_string
clasic
Profil *
Děkuju, budu používat :-) Chci se ještě pro zajímavost zeptat jestli je nějaké ryziko při použití u takové akce strip_tags?
panther
Profil
clasic:
ano, je. Strip_tags ti jen ořeže HTML tagy, podstata SQL injection je v něčem trochu jiném.

Navíc, pokud se jedná o nějaký text, který je formátovaný, což se většinou jedná, je použití strip_tags nevhodné, tagy pak již nedostaneš nikdy zpátky.
clasic
Profil *
Ted moje poznatky :-) Nesmějte se všichni :-) na čísla intval a na textové řetězce mysql_real_escape_string? Píšu to dobře?
Taps
Profil
clasic:
ano
clasic
Profil *
Už jenom poslení otázka: je tohle blbost pokud tam nechci mít tagy jako je <b></b> a chci to mít chráněné proti hackerům?
mysql_real_escape_string(strip_tags($_POST['producer']))
panther
Profil
clasic:
pokud tagy chceš zakázat, ano, použij strip_tags()
clasic
Profil *
Děkuju moc všem za dobré rady a trpělivost smou maličkostí.
clasic
Profil *
Ještě by jsem měl skutečně poslední otázku - co se stane když místo intval bude mysql_real_escape_string?
clasic
Profil *
Vznikne nějakej problém pokud se budou vyskytovat čísla?
panther
Profil
clasic:
Vznikne nějakej problém pokud se budou vyskytovat čísla?
zkus a uvidíš.
clasic
Profil *
panther:
Ty jses dobrák :-) Vážně to byla poslední otázka :-)
panther
Profil
clasic:
nejde o to, jestli byla poslední nebo ne (klidně se ptej dál), ale je zbytečné ti říkat něco, co si snadno během pár vteřin zkusíš a zjistíš sám.

Abys neřekl, že jsem zlý, nic se nestane, ale opravdu nebyl problém zkusit to. Možná bys to měl rychleji, než jsi napsal ty svoje dva poslední dotazy.
clasic
Profil *
hmm, ale já nevim jak udělat injection :-( Když by jsem to uměl, tak by jsem si to pořádně všechno otestoval jestli jsem na tom dobře nebo ne :-) takhle jsem i nucenej se ptát :-(
Taps
Profil
clasic:
hmm, ale já nevim jak udělat injection
google -> mysql injection
najdeš tak spoustů článků o této problematice včetně příkladů
Alphard
Profil
clasic:
Čísla se obvykle neuvozují apostrofy (benevolentní MySQL se s tím sice smíří, ale obecně to obvyklé není). Pokud je dotaz sestavený tak, že čeká neuvozené číslo a dostane řetězec, lze očekávat chybu (Unknown column 'abc' in 'where clause').
Jestli vše bude v apostrofech a ošetřené mysql_real_escape_string(), bude to bezpečné a bude to fungovat, ale moc pěkné to není :-)

Ideální je pro číselný typ dodávat skutečně číslo, pro string escapovaný řetězec, pro datum validované datum apod. Práci s tímto vám může ušetřit nějaká knihovna, která vše sama ošetří.

panther:
zkus a uvidíš.
To je sporné, zvláště pokud jde o bezpečnost. Jestli ji začátečník bude vytvářet metodou pokus omyl, asi to moc dobře nedopadne...
fuufu
Profil *
Hi, clasic ak ešte chceš skúšať SQLi odporúčam Cheese Holes by hack4fun. Bol vytvorený pre tréning a získané logy pomáhajú pri tvorbe bezpečnejších aplikácií. Nechcem Vám tu vkladať reklamu, web nájdeš ľahko cez Uncle Goolge.

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:

0