Test Foro de elhacker.net SMF 2.1

Foros Generales => Dudas Generales => Mensaje iniciado por: Lehrling00 en 24 Mayo 2017, 02:27 AM

Título: Bases de datos
Publicado por: Lehrling00 en 24 Mayo 2017, 02:27 AM
Hola muchachos soy nuevo en el foro entre porque estoy haciendo un trabajo sobre seguridad en bases de datos y tengo una duda: ¿porqué cuando encuentro esto .php?= en la dirección de una pagina, se sabe que es vulnerable a inyecciones sql?, ¿qué es lo que representa o que significa esa linea y como se puede evitar mostrarla? 
Título: Re: Bases de datos
Publicado por: engel lex en 24 Mayo 2017, 02:38 AM
es cosa de aprender php

no es .php?=

es

.php?variable=valor

usualmente los novicios tienden a no filtrar sus solicitudes a la DB, así que hacen un
web.php?pagina=1

y en el código

Código (php) [Seleccionar]
$pagina = $_GET["pagina"]
$sql = "SELECT * FROM tabla WHERE campo='$pagina' ";


esto permite a una atacante hacer una segunda peticion alli

lo peligroso no es el ?pagina=1, es como se filtre eso una vez dentro del servidor...

por toro lado a tu pregunta, como se puede evitar, eso se arregla con "url amistosas" sin embargo el problema persiste si no se filtra la data

Título: Re: Bases de datos
Publicado por: Randomize en 24 Mayo 2017, 05:08 AM
Deberías leer también sobre "honey pot".


Un saludo.
Título: Re: Bases de datos
Publicado por: Orubatosu en 24 Mayo 2017, 19:57 PM
Lo que debes intentar no es evitar mostrar una vulnerabilidad, sino evitarla

Existen en cada lenguaje diferentes métodos, normalmente conocidos como "consultas preparadas" o "consultas parametrizadas"

Normalmente cualquier lenguaje moderno que accede a una base de datos incluye mecanismos para ello. Básicamente consiste en tener la consulta ya preparada y añadir el parámetro de búsqueda mediante una instrucción a un objeto ya existente que contiene la consulta. Si este no tiene el formato correcto, la instrucción simplemente no se ejecuta (en algunos lenguajes ello implica excepciones que hay que tratar)