Foros del Web » Programando para Internet » PHP »

Problema de seguridad con PHH

Estas en el tema de Problema de seguridad con PHH en el foro de PHP en Foros del Web. Que tal, en este momento (el peor momento diria yo) mi programador PHP se encuentra de vacaciones y tengo el problema de que detectamos que ...
  #1 (permalink)  
Antiguo 22/10/2009, 15:59
 
Fecha de Ingreso: octubre-2009
Ubicación: México DF
Mensajes: 52
Antigüedad: 14 años, 6 meses
Puntos: 0
Exclamación Problema de seguridad con PHH

Que tal, en este momento (el peor momento diria yo) mi programador PHP se encuentra de vacaciones y tengo el problema de que detectamos que se estan extrayendo contraseñas de uno de nuestros sitios.

Tenemos una tienda en línea (les diré cual es cuando resovamos esto) mediante la cual vendemos equipo de cómputo con entrega a domicilio y lamentablemente alguien obtuvo las contraseñas de algunos de nuestros usuarios y no me explico como pudo pasar, mediante el log del server, verifiqué un acceso raro mediante GET y al entrar a la ruta Oh sorpresa se muestran los datos de mis usuarios.

Ahondando más en el tema, tenemos la página principal sonde se muestran 7 categorias principales... hardware, software, etc... y al entrar se muestran las subcategorías... impresoras, mouse, etc nosotros llamamos a esas subcategorias al Mysql mediante URL con un ID de categoría es decir

categorias.php?id=1

y se despliegan las subcategorías, lo raro es que detecté un acceso de la siguiente manera

categorias.php?id=-1+union+all+select+1,group_concat(concat_ws(char(5 8),login_user%20,login_pass%20,login_level),0x0a), 3+from+publico_login--

alguien puede explicarme que carajo paso?? ya que el resultado en la página es que se muestran los datos de acceso de mis clientes de la siguiente manera:

usuario:password:1, otrousuario:password2, etc...

¿cómo puedo protegerme de esto?
Para los accesos a las bases de datos, cabe mencionar que utilizamos Dreamweaver. Me preocupa porque las tablas de categorías no tienen relacion alguna con las de login, y de igual manera como es que supieron los nombres de los campos de mi Mysql????

tengo conocimientos intermedios de PHP así que adelante, tiren a matar!!!

(PERDON POR EL TITULO: PHP estoy un tanto nervioso!)

Última edición por artehostingmexico; 22/10/2009 a las 16:00 Razón: error en el título
  #2 (permalink)  
Antiguo 22/10/2009, 16:14
 
Fecha de Ingreso: junio-2008
Ubicación: Porto Alegre
Mensajes: 67
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema de seguridad con PHH

Hola!

Están utilizando inyecciones SQL en tus URL, en este post encontraras soluciones:

http://www.webtaller.com/construccion/lenguajes/php/lessons/evitar_inyeccion_sql.php

Espero que te sea de utilidad!

Abrazos!
  #3 (permalink)  
Antiguo 22/10/2009, 16:16
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema de seguridad con PHH

a eso se le llama SQL Injection, es una pena que tu programador PHP sea tan descuidado... o quien halla sido, la verdad me da vergüenza!!

sin ofender... claro..

por ejemplo, lo del ID ... si siempre es numérico... usarlo directamente en una consulta, sin escaparlo es inseguro... de ahí que tu seguridad este por los suelos... (que bueno que no publicas la dirección del sitio)

así es como debería ser.. aunque hay mas formas
Código PHP:
$id = (int) $_GET['id'];
$sql "SELECT * FROM tabla WHERE id = $id"
con la magia de convertir la variable GET en entero.. evitamos toda la inyección de SQL....
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 22/10/2009, 17:07
 
Fecha de Ingreso: octubre-2009
Ubicación: México DF
Mensajes: 52
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Problema de seguridad con PHP

Les agradezco su ayuda a ambos, por cierto alguien necesita trabajo como programador PHP avanzado? creo que alguien acaba de perder su trabajo en fin, por lo visto este es un problema un tanto común por la pronta respuesta... si no es mucha la molestia pueden indicarme algunos problemas tan ridiculos como este?? no sea que esta persona haya incurrido en todas la fallas de seguridad más comunes!!! gracias
  #5 (permalink)  
Antiguo 22/10/2009, 17:10
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Problema de seguridad con PHH

Cita:
Iniciado por pateketrueke Ver Mensaje
a eso se le llama SQL Injection, es una pena que tu programador PHP sea tan descuidado... o quien halla sido, la verdad me da vergüenza!!

sin ofender... claro..

por ejemplo, lo del ID ... si siempre es numérico... usarlo directamente en una consulta, sin escaparlo es inseguro... de ahí que tu seguridad este por los suelos... (que bueno que no publicas la dirección del sitio)

así es como debería ser.. aunque hay mas formas
Código PHP:
$id = (int) $_GET['id'];
$sql "SELECT * FROM tabla WHERE id = $id"
con la magia de convertir la variable GET en entero.. evitamos toda la inyección de SQL....
Me intereso bastante tu respuesta, queria preguntarte ¿eso de forzar a cada variable GET a ser el tipo que queremos lo haces en cada pagina? ¿o tienes algun metodo que digamos lo haga automatico?

Yo por ejemplo tengo un include al inicio de cada php para evitarme cierto sql-inyection tal que:

Código PHP:
foreach ($_POST as $key => $value) {   $_POST[$key] = mysql_real_escape_string($value); } 
foreach (
$_GET as $key => $value) {   $_GET[$key] = mysql_real_escape_string($value); } 
Pero en este post me he dado cuenta que quizas esto no me sirva con lo que le ha ocurrido al creador del post.... a ver si me dais algun consejo
  #6 (permalink)  
Antiguo 22/10/2009, 17:11
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema de seguridad con PHP

Cita:
Iniciado por artehostingmexico Ver Mensaje
[...] por cierto alguien necesita trabajo como programador PHP avanzado? creo que alguien acaba de perder su trabajo [...]
ve al foro de ofertas de empleo, ahí te atenderán!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 22/10/2009, 17:16
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema de seguridad con PHH

Vun, hola...

mira, no es bueno aplicar la misma "limpieza" a todas las variables arbitrariamente...

es mejor hacerlo variable por variable.. y dependiendo del uso de esta variable, si es entero string, double/float, etc...

claro que hay que hacerlo al momento de utilizarlo, otra es aplicar filtros...
http://php.net/filter

otra es usar PDO para conectar con la BD y utilizar sus métodos ->bind() para que automáticamente se limpien las variables...
http://php.net/pdo

en fin, formas.. varias, solo hay que investigar y reflexionar muy bien sobre el tema


suerte!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 22/10/2009, 17:23
 
Fecha de Ingreso: julio-2009
Ubicación: Argentina!
Mensajes: 324
Antigüedad: 14 años, 8 meses
Puntos: 4
Respuesta: Problema de seguridad con PHH

bueno, justo entre para ver en el foro algun tema relacionado con la seguridad y veo esto, la verdad es muy feo que te ocurran estas cosas, y bueno, lo del programador es algo bastante descuidado, igual como ves, aca te dieron muy buenas respuestas (Las cuales van a servir a muchas personas, me incluyo).

Nos vemos
  #9 (permalink)  
Antiguo 22/10/2009, 17:52
 
Fecha de Ingreso: octubre-2009
Ubicación: México DF
Mensajes: 52
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Problema de seguridad con PHH

Se les agradece a todos... alguna otra falla de este tipo de la que podamos comentar??
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 06:21.