Autor | Zpráva | ||
---|---|---|---|
clasic Profil * |
#1 · Zasláno: 3. 5. 2010, 12:49:59
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 |
#2 · Zasláno: 3. 5. 2010, 13:02:30 · Upravil/a: Taps
clasic:
pro řetězce používej funkci mysql_real_escape_string |
||
clasic Profil * |
#3 · Zasláno: 3. 5. 2010, 13:09:51
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 |
#4 · Zasláno: 3. 5. 2010, 13:15:36 · Upravil/a: panther
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 * |
#5 · Zasláno: 3. 5. 2010, 13:18:47
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 |
#6 · Zasláno: 3. 5. 2010, 13:20:30
clasic:
ano |
||
clasic Profil * |
#7 · Zasláno: 3. 5. 2010, 13:21:51
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 |
#8 · Zasláno: 3. 5. 2010, 13:39:13
clasic:
pokud tagy chceš zakázat, ano, použij strip_tags() |
||
clasic Profil * |
#9 · Zasláno: 3. 5. 2010, 13:52:25
Děkuju moc všem za dobré rady a trpělivost smou maličkostí.
|
||
clasic Profil * |
#10 · Zasláno: 3. 5. 2010, 14:09:21
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 * |
#11 · Zasláno: 3. 5. 2010, 14:10:12
Vznikne nějakej problém pokud se budou vyskytovat čísla?
|
||
panther Profil |
#12 · Zasláno: 3. 5. 2010, 14:13:04
clasic:
„Vznikne nějakej problém pokud se budou vyskytovat čísla?“ zkus a uvidíš. |
||
clasic Profil * |
#13 · Zasláno: 3. 5. 2010, 14:14:21
panther:
Ty jses dobrák :-) Vážně to byla poslední otázka :-) |
||
panther Profil |
#14 · Zasláno: 3. 5. 2010, 14:16:28
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 * |
#15 · Zasláno: 3. 5. 2010, 14:18:22
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 |
#16 · Zasláno: 3. 5. 2010, 14:25:40
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 |
#17 · Zasláno: 3. 5. 2010, 17:59:30
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... |
||
Časová prodleva: 5 měsíců
|
|||
fuufu Profil * |
#18 · Zasláno: 1. 10. 2010, 15:34:53
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.
|
||
Časová prodleva: 15 let
|
0