Estoy creando una aplicación web usando PHP y jQuery Ajax para mi lado del cliente. Cuando estaba probando algunas cosas de seguridad, pensé en insertar una cuenta de usuario malintencionado con acceso de administrador en la base de datos ejecutando una llamada Ajax desde la consola del desarrollador en Google Chrome:
$.ajax({
url: base_url + "callbacks/AccountSettingsCallback/addUpdateAccount",
type: "POST",
data: {
"addUpdateAccount": 1,
"id": ""
"first_name": "hack",
"last_name: "hack",
"username": "gethack",
"password": "1234",
"account_type": 1
},
dataType: "JSON",
success: function(data) {
console.log("get hacked")
}
});
Para mi sorpresa, realmente se ejecutó y los datos se insertaron en la base de datos, ¡aunque no haya iniciado sesión y no debería haber podido hacer eso!
Sé que esta es una vulnerabilidad muy crítica, por lo que mi pregunta es, ¿cuáles son las formas de prevenir este tipo de ataque? ¿Hay alguna forma de verificar a través de PHP si la solicitud vino desde la consola?