Sta usando un file sqlite con un file di nome casuale sicuro?

3

Come sai, SQLite non ha meccanismi di sicurezza. La mia domanda è se io cambio il file del database in un nome casuale come "22OYIz23tmpyesTcMVFmw1tquFxzCIQD.sqlite" qualcuno può sfruttare il mio database e come?

Supponendo di avere il mio server, non l'host condiviso, il database è accessibile solo attraverso la mia app web (PHP)

    
posta Huynh Quang 30.09.2015 - 09:08
fonte

3 risposte

6

SQLite non è come un DBMS tradizionale in quanto non serve il contenuto del database su una rete di computer. In realtà è come archiviare tutto in un file. SQLite consentirà quindi all'applicazione di caricare quel file e interrogarlo.

Come tale non vi è alcun bisogno o vantaggio per un sistema di account utente in quanto solo i programmi sullo stesso computer possono comunque interagire con esso. Il sistema di autorizzazione file del sistema operativo dovrebbe fornire protezione contro lettura / scrittura non autorizzata. Ovviamente la macchina su cui si trova questo sistema deve essere protetta poiché chiunque abbia accesso appropriato su questa macchina può leggere / modificare il database.

Se per esempio vuoi essere in grado di leggere solo la tabella A, ma leggi e scrivi la tabella B, allora dovresti usare 2 file di database, uno con solo autorizzazioni di lettura e l'altro con permessi di lettura / scrittura. Il modo in cui lo fai dipende dal sistema operativo.

    
risposta data 30.09.2015 - 09:22
fonte
0

Il sistema di gestione del database che stai utilizzando non ha nulla a che fare con il fatto che potresti essere compromesso e i tuoi dati rubati.

Se qualcuno può eseguire comandi arbitrari attraverso il tuo webservice PHP, è probabile che possano recuperare i sorgenti del tuo sito web e con esso il nome / IP / password del tuo database.

In base a questo, puoi scegliere qualunque nome divertente vuoi, non importa. Alla fine saranno in grado di sfruttare una connessione esistente senza nemmeno sapere quale tipo di database si trova dietro.

    
risposta data 30.09.2015 - 09:30
fonte
0

La risposta breve è no. Tutto quello che stai facendo è rendere difficile indovinare il nome del file del database, ma non hai fatto nulla per nasconderlo effettivamente agli utenti.

Quello che devi fare è impedire al server di servire il file agli utenti esterni.

Ci sono due approcci per proteggere il tuo file di database:

  • Imposta .htaccess in modo che non serva mai un file con l'estensione del file di database (in genere .db o .sqlite ). Poiché la tua applicazione PHP accede direttamente al file, non avrà accesso limitato.

  • Metti il database all'esterno della web root. Ricorda che PHP ha accesso all'intero sistema di archiviazione e non è limitato alla web root. Tuttavia, dovrai assicurarti che il file del database abbia le autorizzazioni del proprietario e del gruppo appropriate.

risposta data 31.05.2018 - 08:05
fonte

Leggi altre domande sui tag