| | |
| Stránka: 1 z 1
| [ Príspevkov: 9 ] | |
Autor | Správa |
---|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 Bydlisko: Lehota pod ... | Napísal camo: 17.07.2010 22:37 | |
|
Som si kedysi myslel, že metóda Post a fcia addslashes je už celkom dobrá úroveň PHP.
Pomaly sa ale moje ilúzie rozplývajú a otvárajú sa predo mnou nové problémy.
Ako som napr. pred nedávnom zistil, tak fcia addslashes neošetruje špeciálne znaky v Mysql dostatočne.
Zozbieral som aj nejaký zoznam znakov, ktoré by mali byť ošetrené:
% (klauzula like)
_ (neviem kedy)
' (reťazce)
" (reťazce)
\ (escape)
\n (nechápem)
\r (nechápem)
control-z (nechápem)
V tej súvislosti som bol oboznámený s fciou mysqli_real_escape_string(), ktorá zase ale neescapuje napr _ a %. Mám v tom dosť chaos a potreboval, by som keby mal niekto chuť sa ku tomu, čo som označil ako to čo nechápem, vyjadriť. Okrem toho akosi nechápem, prečo nemá fcia mysqli_real_escape_string() nejakú inverznú fciu.
A ak to správne chápem, tak to percento% sa týka len klauzule like a ničoho iného.
Vďaka za každú radu(k veci), lebo mi už z toho ide hlava kolem....
|
|
Registrovaný: 09.09.07 Prihlásený: 07.11.16 Príspevky: 3114 Témy: 233 Bydlisko: Nové Zámky |
Citácia: Returns a string with backslashes before characters that need to be quoted in database queries etc. These characters are single quote ('), double quote ("), backslash (\) and NUL (the NULL byte).
http://sk2.php.net/manual/en/function.addslashes.php
podtrznik _ - podla mna nie je potrebne osetrovat..
\n - pouzivam ako zariadkovanie textarei..
\r - podobne
control-z - neviem co je...
navrhujem nieco taketo, ako zaklad:
Kód: $value = htmlspecialchars($value); $value = str_replace("%","%",$value); $value = str_replace("'","'",$value); $value = str_replace("\"",""",$value);
_________________ "It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď |
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 18.07.2010 11:06 | |
|
Pod Control-Z sa zrejme mysli znak 0x1A "substitute character", ale tiez si neviem vysvetlit, naco to tam je. Kde si vyhrabal ten zoznam?
Camo, ked uz pouzivas mysqli, mozes pouzit tzv. prepared statements, aj tu na pcfore o tom nieco bolo.
|
|
Registrovaný: 26.11.06 Prihlásený: 22.01.24 Príspevky: 4118 Témy: 319 Bydlisko: HE/BA | Napísal Flety: 18.07.2010 12:13 | |
|
Blackshadow, načo by nahradzoval % za % a ' za ' ?
|
|
Registrovaný: 17.07.08 Prihlásený: 24.01.13 Príspevky: 143 Témy: 37 | Napísal tomxi: 18.07.2010 12:32 | |
|
kniha Zranitelny kod odporuca toto (myslim ze je to postacujuce):
Kód: function SQLString($s){ $s = str_replace("'","''",$s); $s = str_replace("\\","\\\\",$s); return "'" . $s . "'"; }
a samostatne funkcie na integer,float..
A co sa tyka toho nuloveho bajtu, ten je potrebne osetrovat hlavne pri uploade suborov; ak teda nechcete aby vam na server miesto obrazku niekto nahral trebars .php subor
_________________ PC: Procesor: INTEL Core i7-860, grafika: MSI R4890 Cyclone OC, 1GB DDR5, doska: Gigabyte GA-P55-UD3R, zdroj: Fortron 700W Everest 700 80+, RAM: 2x2GB Corsair XMS3 DHX |
|
Registrovaný: 09.09.07 Prihlásený: 07.11.16 Príspevky: 3114 Témy: 233 Bydlisko: Nové Zámky |
Flety píše: Blackshadow, načo by nahradzoval % za % a ' za ' ?
jaj shit, toto forum to hned nahradi tam ma byt:
Kód: & # 3 7 ;
a podobne
_________________ "It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď |
|
Registrovaný: 21.02.06 Prihlásený: 08.12.14 Príspevky: 5404 Témy: 30 Bydlisko: Bratislava | |
Registrovaný: 09.09.07 Prihlásený: 07.11.16 Príspevky: 3114 Témy: 233 Bydlisko: Nové Zámky |
_________________ "It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď |
|
Registrovaný: 05.09.09 Príspevky: 1141 Témy: 127 Bydlisko: Lehota pod ... | Napísal autor témy camo: 19.07.2010 11:45 | |
|
No tak ja som ten zoznam pozliepal z toho čo som čítal okolo addslashes a mysql_real_escape_string.
Ale je tu som to našiel kompletne: http://dev.mysql.com/doc/refman/5.0/en/ ... yntax.html
Len z toho mi stále neni jasné, čo v Mysql stringu urobia \n a \r.
A to control+z tiež nie.
Ešte som nečítal tie linky , lebo som sa k tomu dostal až dnes, ale ten Shaggyho vyzerá dobre čo som pozeral.
Mi ešte vŕta v hlave taká vec, že či sa dajú zapísať "a´ aj iným spôsobom (ako nejaký kód) aby to obišlo escapovanie a mysql aby to preložila zase ako " a ´ a robilo by to zase bordel. Ale asi by sa tom niekde niekto už zmienil a teda si myslím/dúfam, že nie.
Ešte ma napadlo, v tejto súvislosti, čo som čítal v Zraniteľnom kóde, ohľadom shellov, že aj tam môže byť problém, lebo pri niektorých príkazoch ich vykonanie predáva PHP týmto jazykom. Len neviem či sem patria aj fcie spojené s DB.
Edit:A myslím, ak to chápem dobre, že ten link od Blackshadow sa týka práve toho...
|
|
| Stránka: 1 z 1
| [ Príspevkov: 9 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|