Inyecciones sql

victorvu Seguir

Beta
Programador
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
24 Feb 2013
Mensajes
118
Hola, estoy trabajando en una web donde hice un sistema de mensajes y quiero saber que onda con las inyecciones.
Trabajo con php y mysql.

Mi duda viene xq siempre pense y lei que las inyecciones solo se pueden hacer en SELECT pero x ahi me dicen q tmb se puede en INSERT y no se si es verdad, si alguno sabe algo
 

ntv

Redactor
No recomendado
Desde
9 Oct 2011
Mensajes
3.025
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
Si haces select es porque la consulta esta abierta , entonces puedes hacer insert.
 

fercba

Épsilon
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Desde
5 Ago 2013
Mensajes
815
Las inyeciones pueden seleccionar, editar, eliminar, etc. Por eso es necesario validar siempre la informacion que recibas sea via get o post. En la documentacion de php se habla un poco acerca de eso, date una vuelta por hay y te dan recomendaciones. Yo te recomendaria que no utilizes el antiguo mysql sino PDO. Tiene muchas funciones interesantes.
 

Dani Diez

Gamma
Verificado por Whatsapp
¡Ha verificado su Paypal!
Desde
4 Abr 2010
Mensajes
457
Te aconsejo que filtres TODO el contenido tanto en la parte que envia el cliente como la que se recibe al servidor.
Además de preocuparte por las SQLinjection tienes que prevenir otros ataques que pueden vulnerar tu aplicación. Tales como Remote/Local File Inclusion, XSS y CSRF entre otros...

Aqui te dejo un articulo sobre algunos tips para securizar tu sistema en php Seguridad en PHP ~ Security By Default

Además te recomiendo utilizar el modulo MySQLi en php How to Use PHP Improved MySQLi extension (and Why You Should)

Espero que te sirva :)

Un saludo
 

Cicklow

Admin
Dseda
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Suscripción a IA
Desde
30 May 2011
Mensajes
1.102
Hola, estoy trabajando en una web donde hice un sistema de mensajes y quiero saber que onda con las inyecciones.
Trabajo con php y mysql.

Mi duda viene xq siempre pense y lei que las inyecciones solo se pueden hacer en SELECT pero x ahi me dicen q tmb se puede en INSERT y no se si es verdad, si alguno sabe algo

podrias testear si es vulnerable usando: "sqliHelper 2.7", ejemplo tenes:
Insertar CODE, HTML o PHP:
www.pepe.com/?id=1
colocas esa url en el soft y comenzara a testear a ver si te pueden hackear!
 

victorvu

Beta
Programador
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
24 Feb 2013
Mensajes
118
Las inyeciones pueden seleccionar, editar, eliminar, etc. Por eso es necesario validar siempre la informacion que recibas sea via get o post. En la documentacion de php se habla un poco acerca de eso, date una vuelta por hay y te dan recomendaciones. Yo te recomendaria que no utilizes el antiguo mysql sino PDO. Tiene muchas funciones interesantes.

Uso Mysqli no mysql :D

Te aconsejo que filtres TODO el contenido tanto en la parte que envia el cliente como la que se recibe al servidor.
Además de preocuparte por las SQLinjection tienes que prevenir otros ataques que pueden vulnerar tu aplicación. Tales como Remote/Local File Inclusion, XSS y CSRF entre otros...

Aqui te dejo un articulo sobre algunos tips para securizar tu sistema en php Seguridad en PHP ~ Security By Default

Además te recomiendo utilizar el modulo MySQLi en php How to Use PHP Improved MySQLi extension (and Why You Should)

Espero que te sirva :)

Un saludo

Me sirvio bastante :p
PD: ya estoy usando mysqli

podrias testear si es vulnerable usando: "sqliHelper 2.7", ejemplo tenes:
Insertar CODE, HTML o PHP:
www.pepe.com/?id=1
colocas esa url en el soft y comenzara a testear a ver si te pueden hackear!

Cuando termine todo el codigo lo pruebo, gracias

Buscando encontre que utilizando prepared statments eliminas toda forma de inyeccion en las consultas (no se hasta donde).

Para guardar los mensajes en la base de datos los limpio con esta funcion:

PHP:
<?php
function limpiar($string)                                            
{
 $string = htmlentities($string);
 $string = strip_tags($string);
 $string = stripslashes($string);
 $string = addslashes($string);
 return $string;
}

Implementando lo nombrado sumado a que la web puede ser vista solo con javascript activado que me estaria faltando?
 
S

Strings

No, la mejor opcion para evitar Inyeccion SQL es utilizar en la sentencia mysqli_real_escape_string(), Injection SQL se pueden producir en UPDATE, DELETE, SELECT, INSERT INTO, ALTERT TABLE, etcc
 

victorvu

Beta
Programador
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
24 Feb 2013
Mensajes
118
No, la mejor opcion para evitar Inyeccion SQL es utilizar en la sentencia mysqli_real_escape_string(), Injection SQL se pueden producir en UPDATE, DELETE, SELECT, INSERT INTO, ALTERT TABLE, etcc

El problema de usar mysqli_real_escape_string() en insert, update es que insertas valores raros como la \

Si usas prepared statments insertas los datos tal cual son escritos sin peligro, creo que es mejor asi! :topsy_turvy:
 
S

Strings

No, en la base de dato se insertan como normales, lo que pasa que lo muestra con \ para que no inyecten.

PHP recomienda mysqli_real_escape_string
 
Arriba