Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 9 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Addslashes

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127
Bydlisko: Lehota pod ...
Príspevok NapísalOffline : 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....


Offline

Užívateľ
Užívateľ
Addslashes

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

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: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 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.


Offline

Užívateľ
Užívateľ
Addslashes

Registrovaný: 26.11.06
Prihlásený: 22.01.24
Príspevky: 4118
Témy: 319
Bydlisko: HE/BA
Príspevok NapísalOffline : 18.07.2010 12:13

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


Offline

Užívateľ
Užívateľ
Addslashes

Registrovaný: 17.07.08
Prihlásený: 24.01.13
Príspevky: 143
Témy: 37
Príspevok NapísalOffline : 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
Offline

Užívateľ
Užívateľ
Addslashes

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

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: 5404
Témy: 30
Bydlisko: Bratislava
Príspevok NapísalOffline : 18.07.2010 17:58

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: 3114
Témy: 233
Bydlisko: Nové Zámky
Príspevok NapísalOffline : 18.07.2010 18:38

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: 1141
Témy: 127
Bydlisko: Lehota pod ...
Príspevok Napísal autor témyOffline : 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...


Odpovedať na tému [ 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

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra