Como no estás escapando los datos es, relativamente fácil obtener acceso a tu sitio, ejemplo:
Tu consulta actual es:
SELECT * FROM registros WHERE user='$usuario_post' AND pw='$contrasena_post'
Supongamos que en el formulario de acceso pones esto en nombre de usuario:
cualquiera' OR 1=1;#
La consulta quedaría:
Código SQL:
Ver originalSELECT * FROM registros WHERE USER='cualquiera' OR 1=1;#' AND pw='$contrasena_post'
Con la comilla simple cierra el contenido a buscar en nombre de usuario.
Con OR 1=1 tu consulta buscará todos los usuarios y obtendrá acceso con el primer registro de tu tabla, ya que uno siempre será igual a uno y no importará el nombre tecleado.
Con ; se finaliza la sentencia para la consulta y todo lo que viene después de # es un simple comentario.
Como podrás ver, es fácil obtener acceso, pero también se puede finalizar una consulta y ejecutar otra como DROP TABLE nombre_de_tabla.
Para solucionar ese problema debes revisar todas las consultas en tu sitio y corregirlas. Te sugiero leer esto:
http://www.forosdelweb.com/f18/aport...8/#post4265377