Foros del Web » Programando para Internet » PHP »

Alguien sabe para que es sirve esto? y como solucionar?

Estas en el tema de Alguien sabe para que es sirve esto? y como solucionar? en el foro de PHP en Foros del Web. Bueno gente tengo una web que descargue para mi servidor MuOnline pero hay un problema, no reconoce ni tildes ni Ñ estube quitando los archivos ...
  #1 (permalink)  
Antiguo 19/03/2013, 06:46
 
Fecha de Ingreso: marzo-2013
Mensajes: 41
Antigüedad: 11 años, 1 mes
Puntos: 0
Alguien sabe para que es sirve esto? y como solucionar?

Bueno gente tengo una web que descargue para mi servidor MuOnline pero hay un problema, no reconoce ni tildes ni Ñ estube quitando los archivos uno por uno y me di cuenta que es este archivo es el que no me deja hacer lo que quiero aca les dejo el codigo:

secure.php

Código PHP:
Ver original
  1. <?PHP
  2. function xw_sanitycheck($str){
  3.     if(strpos(str_replace("''",""," $str"),"'")!=false)
  4.         return str_replace("'", "''", $str);
  5.     else
  6.         return $str;
  7. }
  8.  
  9.  
  10. function secure($str){
  11.     // Case of an array
  12.     if (is_array($str)) {
  13.         foreach($str AS $id => $value) {
  14.             $str[$id] = secure($value);
  15.         }
  16.     }
  17.     else
  18.         $str = xw_sanitycheck($str);
  19.  
  20.     return $str;
  21. }
  22.  
  23. // Get Filter
  24. $xweb_AI    = array_keys($_GET);
  25. $i=0;
  26. while($i<count($xweb_AI)) {
  27.     $_GET[$xweb_AI[$i]]=secure($_GET[$xweb_AI[$i]]);
  28.     $i++;
  29. }
  30.  
  31.  
  32. // Request Filter
  33. $xweb_AI    = array_keys($_REQUEST);
  34. $i=0;
  35. while($i<count($xweb_AI)) {
  36.     $_REQUEST[$xweb_AI[$i]]=secure($_REQUEST[$xweb_AI[$i]]);
  37.     $i++;
  38. }
  39.  
  40.  
  41. // Post Filter
  42. $xweb_AI    = array_keys($_POST);
  43. $i=0;
  44. while($i<count($xweb_AI)) {
  45.     $_POST[$xweb_AI[$i]]=secure($_POST[$xweb_AI[$i]]);
  46.     $i++;
  47. }
  48.  
  49. // Cookie Filter
  50. $xweb_AI    = array_keys($_COOKIE);
  51. $i=0;
  52. while($i<count($xweb_AI)) {
  53.     $_COOKIE[$xweb_AI[$i]]=secure($_COOKIE[$xweb_AI[$i]]);
  54.     $i++;
  55. }
  56.  
  57.  
  58. function check_inject() {
  59. $badchars = array(";", "'", "\"", "*", "DROP", "SHUTDOWN", "SELECT", "UPDATE", "DELETE", "-", "drop", "shutdown", "select", "update", "delete");
  60. foreach($_POST as $value) {
  61. if(in_array($value, $badchars)) { die("SQL Injection Detected\n<br />\nIP: ".$_SERVER['REMOTE_ADDR']); }
  62. else {
  63. $check = preg_split("//", $value, -1, PREG_SPLIT_OFFSET_CAPTURE);
  64. foreach($check as $char) {
  65. if(in_array($char, $badchars)) { die("SQL Injection Detected\n<br />\nIP: ".$_SERVER['REMOTE_ADDR']); }
  66. }
  67.  }
  68.   }
  69.    }
  70.  
  71. function clean_var($var=NULL) {
  72. $newvar = @preg_replace('/[^a-zA-Z0-9\_\.\-\.@]/', '', $var);
  73. if (@preg_match('/[^a-zA-Z0-9\_\.\-\.@]/', $var)) { }
  74. return $newvar;
  75. }
  76. ?>

Tengo miedo de que sea parte de la seguridad y por eso no quiero quitarlo. pero cuando lo quito ahi recien puedo utilizar tilde y Ñ

Saludos!
  #2 (permalink)  
Antiguo 19/03/2013, 06:52
Avatar de evolutionrgm  
Fecha de Ingreso: mayo-2011
Mensajes: 108
Antigüedad: 12 años, 11 meses
Puntos: 5
Respuesta: Alguien sabe para que es sirve esto? y como solucionar?

por lo que veo amigo efectivamente son funciones si es que no me equivoco la primera ayuda a que si ingresas "," o" -" los borra del campo que ingresas
hay otra funcion que ayuda a no realizar inyeccion de sql a tus formularios , tambien hay una que si tu llamas te deja solo ingresar campos numericos.
  #3 (permalink)  
Antiguo 19/03/2013, 06:59
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Alguien sabe para que es sirve esto? y como solucionar?

Si forma parte de la seguridad deberías modificar la ultima para que no elimine los tildes y ñ y de paso otros simbolos que te puedan interesar... ç Ç ....

http://www.php.net/manual/es/pcre.pattern.php

http://www.php.net/manual/es/function.preg-replace.php

Código PHP:
Ver original
  1. function clean_var($var=NULL) {
  2. $newvar = @preg_replace('/[^a-zA-Z0-9\_\.\-\.@]/', '', $var);
  3. if (@preg_match('/[^a-zA-Z0-9\_\.\-\.@]/', $var)) { }
  4. return $newvar;
  5. }

Esta función limpia los simbolos que no esten en el patron /[^a-zA-Z0-9\_\.\-\.@]/ cambiandolos por '' (cadena vacía)... solo admite los simbolos entre a y z, A y Z y de 0 a 9.... te dejo el link al manual modificala, no alteraras la seguridad. No deberías admitir caracteres como ' (apostrofe) " (comillas) ... en general los que pueden tener un significado especial en sql o php.... o escaparlos con la barra invertida. \
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 19/03/2013 a las 07:05

Etiquetas: select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:08.