inyeccion SQL y como evitarla....

Iniciado por nobo, 16 Febrero 2012, 22:42 PM

0 Miembros y 1 Visitante están viendo este tema.

Zomtrixbiesroot

Pero esta bien usada como muestra mi ejemplo o cuando es recomendable usarla?

Código (php) [Seleccionar]
$sql = "insert into noticias values
(
null,
'".$_POST["titulo"]."',
'".$_POST["nota"]."',
'".$_POST["code"]."',
now(),
now(),
'".$_POST["cate"]."'
)";


Acá por ejemplo en una conexión?

Abrazo

Tyrz

si pasas el enlace de tu web no me importaría echar un vistazo a ver que encuentro
Web dedicada por completo al surf. Hablamos de tablas de surf, videos de surf, fotos, juegos y mucha información sobre como aprender a surfear, spots famosos como mundaka, pipeline y zonas como vizcaya, surf españa, sopelana y mucho más. Trucos y peligros del surf. A que esperas? Entra en  Surf

nobo

ok! De momento esta qui:

www.elzulo.site90.net

No esta con ningun script para filtrar ni nada ;) Prueba a ver y me dices ^^

#!drvy

Cita de: Zomtrixbiesroot en 22 Febrero 2012, 02:51 AM
Amig@s perdón que me meta en el tema pero estoy metiéndome en la POO y de paso en la seguridad en php :D

entonces leyendo el tema me intereso saber que hace mysql_real_escape.

yo tengo esta consulta:

$sql = "select * from noticias where id_noticia=".mysql_real_escape_string($_GET['id']);

Ahi que estaria evitando?

Cuando es recomendable usar dicha función y que hace?

CitarEscapa caracteres especiales en la cadena no escapada, teniendo en cuenta el conjunto de caracteres actual de la conexión para que sea seguro usarla en mysql_query(). Si se van a insertar datos binarios, esta función debe ser usada.

mysql_real_escape_string() llama la función de la libreria de MySQL mysql_real_escape_string, la cual antepone backslashes a los siguientes caracteres: \x00, \n, \r, \, ', " y \x1a.

Esta función siempre debe (con pocas excepciones) ser usada para hacer los datos seguros, antes de enviar una consulta a MySQL.
http://php.net/manual/es/function.mysql-real-escape-string.php

Si es un id (numero), Puedes usar la función (int) que convierte cualquier cosa a entero.

Saludos