Mensajes: 4,185
Registro en: Aug 2009
Reputación:
50
06-04-2011, 10:00 AM
(Este mensaje fue modificado por última vez en: 06-04-2011, 10:02 AM por Reaper45.)
(06-03-2011, 06:51 PM)Reboot escribió: Simplemente con la buena costumbre de usar addslashes() en las consultas ya te ahorras de muchos quebraderos de cabeza.
http://shiflett.org/blog/2006/jan/addsla...ape-string
;-)
Mejor hacer una lista blanca de caracteres que filtrar posibles entradas peligrosas. Bastaría con una función php para validar que cada posición del array que le pases contenga un carácter alfanumérico. Si no lo es, entrar en modo pánico y devolver falso. Y por supuesto, no olvidarse de pasársela a cada variable que vaya a una consulta.
Mensajes: 8,986
Registro en: May 2007
Reputación:
149
06-04-2011, 11:05 AM
(Este mensaje fue modificado por última vez en: 06-04-2011, 11:46 AM por Reboot.)
(06-04-2011, 10:00 AM)Reaper45 escribió: (06-03-2011, 06:51 PM)Reboot escribió: Simplemente con la buena costumbre de usar addslashes() en las consultas ya te ahorras de muchos quebraderos de cabeza.
http://shiflett.org/blog/2006/jan/addsla...ape-string
;-)
Mejor hacer una lista blanca de caracteres que filtrar posibles entradas peligrosas. Bastaría con una función php para validar que cada posición del array que le pases contenga un carácter alfanumérico. Si no lo es, entrar en modo pánico y devolver falso. Y por supuesto, no olvidarse de pasársela a cada variable que vaya a una consulta.
Como la mayoría de almas en la red, yo uso Latin-1 en la base de datos, por lo que addslashes es, por lo general, suficiente
De todas formas estoy viendo que todo el meollo viene de que la peña consulta [MAL] para los usuarios buscando por user y password y compararlos por SQL mismo. ¡ERROR! Busca el user, consulta su password y luego compara lo que te viene del formulario con lo que te viene de DDBB con PHP.
A mí jamás se me ocurriría hacer búsqueda y comparación directamente en SQL. Soy poco elegante y parezco un n00b haciendo eso, pero al final tengo razón y me evito (sin querer) problemas de inyección.
En mi caso, la comprobación de passwords es tan animal como sigue:
1. Consulto de la base de datos TODOS los usuarios y los empaqueto en un array $USER.
2. Compruebo que el $USER[$usuario] existe y le saco sus datos.
3. Compruebo que $USER[$usuario]["password"]=$password.
3. Return $USER[$usuario]
No se mete nada de fuera en la consulta, todos contentos.
"Es como el que se mataba a pajas con U-jin y hoy en día o es Boku no Piko o ni se le levanta." - AniList
Mensajes: 5,408
Registro en: May 2007
Reputación:
65
Bufff, mi profe de BD te mataría por destrozar de semejante manera la eficiencia de la BD XD
Pero si, en principio con eso no parece haber problemas de inyección.
Mensajes: 8,986
Registro en: May 2007
Reputación:
149
06-04-2011, 11:52 AM
(Este mensaje fue modificado por última vez en: 06-04-2011, 11:54 AM por Reboot.)
Ya, que conste que esa pieza de código no es mía, sino de un pavo compañero de trabajo que era partidario de dejar que la base de datos "escupiera" todo lo que necesitara, montar una jerarquía de arrays de fácil acceso y comprobar luego con php lo que fuera.
La verdad es que incluso para bases de datos relativamente grades, funciona muy bien. Otra cosa sería la base de datos de la farmacia, que tiene tablas con varias decenas de millones de líneas. No en balde ocupa 1 GB sin comprimir.
"Es como el que se mataba a pajas con U-jin y hoy en día o es Boku no Piko o ni se le levanta." - AniList
Mensajes: 4,185
Registro en: Aug 2009
Reputación:
50
06-04-2011, 01:06 PM
(Este mensaje fue modificado por última vez en: 06-04-2011, 01:08 PM por Reaper45.)
(06-04-2011, 11:05 AM)Reboot escribió: En mi caso, la comprobación de passwords es tan animal como sigue:
1. Consulto de la base de datos TODOS los usuarios y los empaqueto en un array $USER.
2. Compruebo que el $USER[$usuario] existe y le saco sus datos.
3. Compruebo que $USER[$usuario]["password"]=$password.
3. Return $USER[$usuario]
Lol. Me lo quedo. Eso está diseñado por un auténtico paranoico.
De todas formas, pienso que sigue siendo mejor complementar barreras que depender sólo de una.
Mensajes: 1,669
Registro en: Mar 2009
Reputación:
41
(06-03-2011, 02:10 PM)Reaper45 escribió: Al margen de que defacear webs y tumbar servers sea cosa de niñatos o hacktivistas descerebrados/comeflores, en lulzsec tienen estilo y habilidad.
Osea, quemar coches es de niñatos pero quemarlos usando tus propios productos combustibles es tener estilo...
¿Por qué cojones no trabajan de eso para empresas de seguridad en vez de tocarle los cojones a la gente?
Mensajes: 1,457
Registro en: May 2007
Reputación:
24
¿Prefieres romper cosas o arreglar las que a roto otro?
Es de pura logica, aunque no tenga ninguna lo que hacen
Mensajes: 1,669
Registro en: Mar 2009
Reputación:
41
06-04-2011, 01:36 PM
(Este mensaje fue modificado por última vez en: 06-04-2011, 01:36 PM por X51.)
Prefiero romper las cosas cobrando para que otro las arregle y las pueda prevenir para que no venga un tercero a dejarlo todo patas arriba de verdad.
Mensajes: 4,185
Registro en: Aug 2009
Reputación:
50
06-04-2011, 03:07 PM
(Este mensaje fue modificado por última vez en: 06-04-2011, 03:12 PM por Reaper45.)
Stop. No hay nadie que trabaje en una empresa de seguridad (AKA sombreros blancos) y que no dedique un par de noches a la semana buscando sistemas que no le pertenecen en shodan/google/etc para probarlos, buscar nuevas vulnerabilidades y/o ver hasta dónde puede llegar. Repito, nadie en absoluto.
Destruirlos y/o lucrarse con ellos ya es otra historia (caso de la PSN).
Y esto es tan cierto como las pajas que te haces cada día. Por cierto, los sombreros blancos petan la red de su cliente, pero también parchean.
(06-04-2011, 01:22 PM)X51 escribió: Osea, quemar coches es de niñatos pero quemarlos usando tus propios productos combustibles es tener estilo...
Lo vas cogiendo. Aunque en este caso, no haría falta destruir nada. Por eso dije "al margen de..."
Que conste, a mí tampoco me gusta la filtración de datos que hicieron.
Mensajes: 1,669
Registro en: Mar 2009
Reputación:
41
Decidido, serás el último que me cargue y después continuaré con los pederastas, los emos, los grunges, los violadores, etc.
|