Inyecion SQL y HTML

Topic created · 16 Mensajes · 2393 Visitas
  • A quien no le pasa, que coges un formulario lo rellenas con un meta para que redirija y a la mínima... que ves el resultado te redirecciona.
    O la típica, inyección de sql para sacar datos, borrarlos....

    Me puse a crear una funciona que no permita ni html ni sql.

    function validar($cadenatext){
       $cadenatext = str_replace("\'","",$cadenatext);
       $cadenatext = str_replace('\"',"",$cadenatext);
       $cadenatext = str_replace("'","",$cadenatext);
       $cadenatext = str_replace('"',"",$cadenatext);
       $cadenatext = stripslashes($cadenatext);
       $cadenatext = explode("\\",$cadenatext);
       $cadenatext = implode("",$cadenatext); 
       $cadenatext = strip_tags($cadenatext, '
    
    [br].[/br][br].[/br]  
      
    ');
       return $cadenatext;
       }
    

    Remplazamos ' comillas simples
    Remplazamos " comilals
    Eliminamos las barras \ que quedan al quitar las ' o "
    Dividimos
    Quitamos las barras restantes
    Eliminamos todo signo de html y permitimos algunos caracteres.

    como funciona? XD
    Bueno imaginar
    Recogemos el formulario

    $nombrecampo = $_POST['campo'];
    $nombrecampo = validar($nombrecampo);
    

    o directamente

    $nombrecampo = validar($_POST['campo']);
    

    Un Saludo 🙂
    Espero que os ayude eso en algo 😛

  • Muy bueno pero nose como ponerlo

  • si te soy sincero, esta bien, por la red hay muchas más completas XD y generalmente también se borran palabras usadas en la consulta sql :

    $banlist = ARRAY (
                        "insert", "select", "update", "delete", "distinct", "having", "truncate", "replace",
                        "handler", "like", " as ", "or ", "limit", "order by", "group by", "asc", "desc",
    					";", "/", "*", "-", "=","(", ")", "'", '"', "--", "+", "
    

    y podrías agregar muchas más etiquetas html al strip_tags, eso, junto a la función mysql_real_escape_string() hace seguro un formulario.

    Para poner la función solo debes llamarla, por ejemplo, la variable que usas se llama $cadena, pues haces esto:

    validar($cadena);
    

    con eso la función trabaja sobre lo que haya en esa variable.

  • @Aquiles94 said:

    si te soy sincero, esta bien, por la red hay muchas más completas XD y generalmente también se borran palabras usadas en la consulta sql :

    $banlist = ARRAY (
                        "insert", "select", "update", "delete", "distinct", "having", "truncate", "replace",
                        "handler", "like", " as ", "or ", "limit", "order by", "group by", "asc", "desc",
    					";", "/", "*", "-", "=","(", ")", "'", '"', "--", "+", "
    

    y podrías agregar muchas más etiquetas html al strip_tags, eso, junto a la función mysql_real_escape_string() hace seguro un formulario.

    Para poner la función solo debes llamarla, por ejemplo, la variable que usas se llama $cadena, pues haces esto:

    validar($cadena);
    

    con eso la función trabaja sobre lo que haya en esa variable.

    Añadire Cosas >.<
    Ahora me pongo y le quito tambien eso.
    quitar el > y el < no, por que el html para el

    es necesario jeej

  • solo es cuestión de añadir las cosas correctas y quedará una función que filtre todo.

  • por lo que se, es mas seguro usar mysql_real_escape_string() para filtar los datos obtenidos desde un formulario.

  • @jumarras said:

    por lo que se, es mas seguro usar mysql_real_escape_string() para filtar los datos obtenidos desde un formulario.

    Eso pense yo...
    Pero si te meten html con metas?

  • si quieres puedes usar htmlspecialchars(), pero creo que no es necesario osar esto si usas mysql_real_escape_string().

  • lo que a mi no me gusta de la función htmlspecialchars() es que convierte todo a los caracteres html, lo que no me gusta para las bases de datos, luego estar convirtiéndolos de vuelta y demás no me gusta XD por eso reemplazo esas cosas en lugar de usar esa función.

  • Yo prefiero fiarme de mi funcion jejejeje _xD_