Sto costruendo un sito dove le persone creano piccole reti private, private. Per facilità di amministrazione e portabilità, vorrei che ogni rete fosse archiviata in un diverso database MySQL.
Comprendo che non esiste un limite artificiale al numero di database che un server MySQL può gestire, e nei miei test di base non c'è un impatto misurabile sulle prestazioni. Quello che vorrei sapere è: se permetto che questi database vengano impostati senza il mio intervento, quali sono le implicazioni per la sicurezza?
I miei pensieri finora:
-
Per l'utilizzo generale, l'app si connetterebbe a MySQL come utente con diritti limitati "SELECT", "INSERT", "UPDATE", "DELETE". A questo utente sarebbero concessi i diritti di lettura / scrittura in ogni database creato.
-
Quando viene creata una nuova rete, l'app si connette a MySQL come utente speciale con il privelege "CREATE", quindi può creare un nuovo database.
-
Vorrei solo creare un nuovo database se sono convinto che la persona sia un utente legittimo (convalida e-mail, captcha ecc.)
-
Se vengono creati database illegittimi, li noterò e li eliminerò, e spero di capire come evitare che vengano creati altri.
Con un setup come questo, ci sono delle implicazioni sulla sicurezza a cui non ho pensato? C'è qualche pericolo, oltre alla possibile creazione di database da parte di utenti illegittimi?