Foro de elhacker.net

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
Código:
web.php?pagina=1

y en el código

Código
  1. $pagina = $_GET["pagina"]
  2. $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)