Sto creando un'app web utilizzando PHP e jQuery Ajax per il mio lato client. Quando stavo testando alcuni elementi di sicurezza, ho pensato di inserire un account utente malintenzionato con accesso amministrativo nel database eseguendo una chiamata Ajax dalla console dello sviluppatore in 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")
}
});
Con mia sorpresa, è stato effettivamente eseguito e i dati sono stati inseriti nel database, anche se non ero loggato e non avrei potuto farlo!
So che questa è una vulnerabilità molto critica, quindi la mia domanda è: quali sono i modi per prevenire questo tipo di attacco? È comunque possibile controllare tramite PHP che la richiesta provenga dalla console?