Lasciami prefisso la mia domanda con alcune informazioni sul nostro ambiente. Abbiamo un server web con oltre 100 siti web. Il server Web ha una corrispondente versione di MySQL Server 5.7. Ogni sito Web PHP ha un database MySQL con un utente MySQL ad esso collegato che ha solo le autorizzazioni impostate per poter accedere al suo database. In precedenza abbiamo dato solo le autorizzazioni utente, SELECT, UPDATE, DELETE e INSERT del sito web. Ora ci troviamo in una situazione in cui dobbiamo ora concedere all'utente le autorizzazioni Crea, Alter e Drop. Mi sto chiedendo quali sono i potenziali rischi per la sicurezza che ci sottopongono dando a questi utenti del sito Web queste autorizzazioni aggiuntive.
La prima cosa ovvia che posso pensare è con il permesso DROP, qualcuno potrebbe ovviamente abbandonare tutte le tabelle e tutti i dati andrebbero persi. Penso che potremmo essere in grado di ristrutturare il nostro codice per non richiedere DROP. Se questo è il caso e abbiamo solo bisogno di aggiungere CREATE & Alterare all'utente, quindi, qual è la situazione peggiore? Il database è anche bloccato da IP per accedere solo all'interno della nostra rete, quindi l'unico modo in cui un utente potrebbe accedere al database direttamente sarebbe attraverso un'iniezione SQL attraverso il sito web.