Inyecion SQL y HTML
-
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 eles 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_