[ Príspevkov: 9 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Addslashes

Registrovaný: 05.09.09
Príspevky: 1157
Témy: 127 | 127
Bydlisko: Lehota pod ...
NapísalOffline : 17.07.2010 22:37 | Addslashes

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....


Offline

Užívateľ
Užívateľ
Addslashes

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3128
Témy: 233 | 233
Bydlisko: Nové Zámky
NapísalOffline : 18.07.2010 1:28 | Addslashes

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ď
Offline

Čestný člen
Čestný člen
Addslashes

Registrovaný: 11.08.07
Príspevky: 4110
Témy: 30 | 30
Bydlisko: Brno
NapísalOffline : 18.07.2010 11:06 | Addslashes

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.


Offline

Užívateľ
Užívateľ
Addslashes

Registrovaný: 26.11.06
Prihlásený: 23.09.17
Príspevky: 4123
Témy: 317 | 317
Bydlisko: HE/BA
NapísalOffline : 18.07.2010 12:13 | Addslashes

Blackshadow, načo by nahradzoval % za % a ' za ' ?


_________________
Desktop: CASE: Cooler Master Centurion 532 MB: ASUS P5Q PRO Turbo CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 4-4-4-12 2T GPU: PowerColor PCS+ HD6950 HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: LCD: DELL U2414M 24" 1920x1200
Offline

Užívateľ
Užívateľ
Addslashes

Registrovaný: 17.07.08
Prihlásený: 24.01.13
Príspevky: 143
Témy: 37 | 37
NapísalOffline : 18.07.2010 12:32 | Addslashes

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
Offline

Užívateľ
Užívateľ
Addslashes

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3128
Témy: 233 | 233
Bydlisko: Nové Zámky
NapísalOffline : 18.07.2010 17:51 | Addslashes

Flety píše:
Blackshadow, načo by nahradzoval % za % a ' za ' ?

jaj shit, toto forum to hned nahradi :D 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ď
Offline

Čestný člen
Čestný člen
Addslashes

Registrovaný: 21.02.06
Prihlásený: 08.12.14
Príspevky: 5447
Témy: 30 | 30
Bydlisko: Bratislava
NapísalOffline : 18.07.2010 17:58 | Addslashes

Camo, niečo o addshlashes a o ošetrení vstupných dát si môžeš prečítať aj tu:
http://phpfashion.com/escapovani-definitivni-prirucka


_________________
Neradím a nekomunikujem cez SS, ak niečo potrebujete, máte iné možnosti: Ak vám zmizla téma, alebo sa vám niečo nepáči. Ak potrebujete nahlásiť príspevok/človeka, reportujte ho. Ak máte s niečim problém, riešte to v danej téme.
Offline

Užívateľ
Užívateľ
Addslashes

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3128
Témy: 233 | 233
Bydlisko: Nové Zámky
NapísalOffline : 18.07.2010 18:38 | Addslashes

http://shiflett.org/blog/2006/jan/addsl ... ape-string
zaujimave :)


_________________
"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ď
Offline

Užívateľ
Užívateľ
Addslashes

Registrovaný: 05.09.09
Príspevky: 1157
Témy: 127 | 127
Bydlisko: Lehota pod ...
Napísal autor témyOffline : 19.07.2010 11:45 | Addslashes

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...


 [ Príspevkov: 9 ] 


Addslashes




© 2005 - 2017 PCforum, edited by JanoF