Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/05/2013, 12:10
minombreesmm
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 14 años, 2 meses
Puntos: 52
¿Como limpiar bien lo que recibo por post?

hasta ahorita tengo esta funcion


y lo que pongo para probar es esto...

Código PHP:
Ver original
  1. function cleanString($string){
  2.     $string=trim($string);    
  3.     $string=htmlspecialchars($string);
  4.     //$string=htmlentities($string);
  5.     //$string=htmlentities($string, ENT_QUOTES,"UTF-8");
  6.     $string=nl2br($string);
  7.     return $string;    
  8. }

esa forma me gusto por que puedo insertar codigo html y lo muestra tal y cual se inserta sin alterar nada. uso codificacion utf8 osea se envian los datos como el usuario los escribe y si escribe algo de html se guardan los datos de una manera y se visualizan de la forma que el usuario los escribio. hasta alli todo bien
pero quise probar poniendo esto.. y nisiquiera logran insertar.
creen que hace falta algo en mi funcion de tal manera que no altere lo que ya eh logrado.
el codigo es este.
Código raro:
Ver original
  1. spacer.gifs÷t³°Ldd`dh`€ÅŸ,Œ ZD€d˜˜\¬PKv½h« + PK    R< $ src.1231175687546.png.autoresize.png}XeT…
  2. ·V`@�!¤Dé‰!†.éîîBRRén�®‘”.�…‡
  3. rJ(zЦ[Ø(<aTŽ›×JäÄ/!Ý8#ç ”ÂyÊþR볜9…‡
  4. É›£˜îã—Z$rù9hÚeªn™·Ån÷ã†~$4
  5. €b‹jTûñ�d¹;¸•'tí}Я[6‡4ùÛµ6 @‚+h…‡ i×µí–aR‰¨×à73:F�¸
  6. °0ší‘;Ü#8®{Ñ´øˆIàÅt–šñoFá{pkj2á·TR|R…‡
  7. {CZa‰+& E úNÈñ�¾ãj Zª½øj[?Fëù6µÇîä*¿§³òj½‰%'b÷æ±òÅ+…‡ MNÒö  à8³ƒÖ#Øy‡’÷
  8. 0Ú šÊ»kœÌ¯©J+ Ã%`£ñïÒ;L�[›HÆLàŽ
  9. ¡ó�‡O´úÀÒ‰
  10. ¹éŠÒ")4ñÇÒ,¯>æ2Ÿj_˜j_+k&?µ™m·Ê©$ù…‡
  11. y”Yí[v?=Ë|=Ö7àÚÍ, «ê'r]–ÖÃ�>    c¿èÀ±…‡ eòöÂD˜s;71ÅÇ_LÐ�æè»O-±hpÊåÔ®íø�#Xj#¸PÎ…‡ š²Êñ«ÌÌ*›y;ž+~� ÒèæÉÂÛ)á¼Ìþö4S
  12. iE7ålñ·žvéÄb¤]ì;z¦;
  13. ¨
  14. g ‘̘¸o¶âú´„–q €‡Âð`j°ì¬,L{~Ò³'UÁñ½ýÙ»0Av'm»ÁÒ7ÀšÜ¶s…‡
  15. "£
  16. &u“¯'._ì˜F1©y!ÊgxÅÇ®ÂÏF£¼�óÕtú‡4o…‡ K¥ÜFêG¿o†Ô]ÖR
  17. Œ(ú†‹+žgå¥; ôB½å‹tùÁYLÿ–ľ¨Wó—e%¯�…‡
  18. 5áíceï‹WIlKíÛ¿!Õ¨3?ÖHZD�k@(«G÷-çÀC…‡
  19. d'¦©ee*m9°ùdJj¸Ò/hAñb0{í¨œ.@*ëi'¾}…‡
  20. Ù«µÜÞ*Û–½¥ÉU‘   k¢*HM•!£†Ê÷�þ™wqa¡ÿ"ð…‡ ÀõotfŽÀË}‘”ÁÐêôÙ ñwß#jÎ’=tV¥AºØBYÑN0…‡
  21. ¸eJc’çeBWBfþîZ²¥[¦*Æåv…où=}Óâ:×á'ÿ‰…‡
  22. ^°Õô³åÏ_Ÿý8STœÈ.¡nârd{u¿ŒÁý†«^“…‡
  23. ×–ÐøIwÔiK»Z¼»,zhΫ±Œ*µ€þ6 GçL…ª"¥¥¹Cf]®ÆfÎ’ûq©}Fú¢‰Ê$´4"8Ëýtõ
  24. ÓQlý†K×îå¢Äì
  25. '®äªçj/›¬+ã^NXÊ. ì¨Êˈ4íV¤'Š=közb”…‡
  26. ;çR:çÿÃÜ/äB=f¾j©r   Ô&øƒÁ‹æ�d~Ø1§Pgvÿ…‡ ªJQ‹�‚œJgãMÍÙqE;§$níþ#1J—V—›|TèÀBÞ„û‹…‡
  27. ó×?Fˆˆ¿Rý%¾×„4Âo”�ð� }ƒša¨#ßOΩ¼ƒþ{FœO%åh¦Eåì«Þ1W8ž-½M4™ÙŽ…‡ [€Ÿ®2E„Y^VQ¨õ¬)BxI¾¡ûþ>ó;ôaÉûôàß]›ùì–2…‡
  28. …jø›g�§²í÷n? ¹‹ý¬& ƒ¢"TÉ`�ö¼ÔWN;$ kôLN{nÊÈá¢CÙ^ß½êÊÓþU7¤ÁðaÛæS�!¥à:uj°(G…‡
  29. ÀŸ2j?q±
  30. w“ÉÒs]ÇØ{8º¢Ä2zØô;1Ò*OçõCkf§¥8Œ¦Éi…‡ ÙŒP'ÎóÜ`9OÌt¢,h�ó¼—™96&f+ø}u5-  £«ÊÌboo>—làñ½¿I3ÓÀÜX8ÿf#™‹hx *ÖXì�CLK<^
  31. &yòdþÒ×Öv¢àß
  32. w>ÇÃðw �¢O
  33. }}ñ(ì÷Õ1´½rÚZ¿ßó*™Í�H3uyÊA>¡>Ìã=1…‡ &ˆ   A�Ì”)qÐF×’UJfÙÀYAØÕßÿW®!/èÿ´‘ýi|…‡
  34. >–Þ¥©0S�@�,¡©Þ@ ’¢‹”(n€*c‰ôÌyóçÒ

lo que se que es es el apostrofe. '
entonces lo que me queda es averiguar como filtrar el apostrofe

de antemano gracias


reedito.
añadi esto a la funcion cleanString

Código PHP:
Ver original
  1. $string=str_replace("'","\'",$string);

ahora si agarra el apostrofe,
pero ahora como scapo la \


intente hacer esto

Código php erroneo:
Ver original
  1. $string=str_replace("\","",$string);

pero no escapa ni para su sintaxys correcta.. osea no se puede hacer esto

echo "\";
como solucionarlo, seria lo unico me imagino


finalmente lo logre con este truco..

Código PHP:
Ver original
  1. function cleanString($string){
  2.  
  3.     $string=trim($string);    
  4.  
  5.     $string=htmlspecialchars($string);
  6.    
  7.  
  8.     //$string=htmlentities($string);
  9.  
  10.     //$string=htmlentities($string, ENT_QUOTES,"UTF-8");
  11.  
  12.     //$string=htmlentities($string, ENT_QUOTES,"iso-8859-1");
  13.  
  14.     $string=nl2br($string);
  15.    
  16.  
  17.     $diag= "\'";
  18.     $diag=str_replace("'","",$diag);
  19.    
  20.     $string=str_replace($diag,"",$string);
  21.    
  22.     $string=str_replace("'","\'",$string);
  23.  
  24.     return $string;
  25.  
  26. }

no se si sea buena idea hacerlo pero funciona

no es probable que alguien use diagonales y apostrofes pero si a alguien se le ocurre...


y por cierto del 1 al 10 que tan vulnerable es mi sitio con esa validacion?

y que mejoras podria darle

REVIELVO A REEDITAR.
solo me funciono para la apostrofe pero para la diagonal invertida no la agarra
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra

Última edición por minombreesmm; 19/05/2013 a las 13:06