Pensi che ogni vulnerabilità offra immediatamente a un utente malintenzionato l'accesso completo alla tua applicazione?
Hell no!
Quindi, come vengono sfruttate le applicazioni? SQL Injection è molto comune e, se si dispone di un'iniezione SQL in un'applicazione, è necessario disporre dell'accesso completo in lettura al database. Ciò significa che puoi leggere i valori crittografati. Quindi, per quanto riguarda la chiave? Bene, un utente malintenzionato potrebbe essere in grado di accedere alla chiave utilizzando un load_file()
MySQL, ma non se l'applicazione è stata compilata correttamente. MySQL non dovrebbe nemmeno essere sullo stesso sistema e se il tuo DBA ha un senso di sicurezza, l'app web non avrà file_priv
.
Ma ancora di più, i segreti possono essere archiviati in luoghi che non sono in file accessibili, ad esempio: variabili di ambiente . I privilegi del file system possono essere utilizzati per rendere i file eseguibili, ma non leggibili o scrivibili da un utente malintenzionato. La crittografia riguarda la pianificazione dell'errore e l'utilizzo della vulnerabilità di un utente malintenzionato nei suoi confronti.