Domanda

Sto sviluppando un'applicazione PHP che utilizza SQLite come il sistema di gestione di database, MySQL e PostgreSQL, ecc non è un'alternativa (anche se mi piacerebbe davvero utilizzare pgsql), perché voglio la messa a punto di essere molto principiante-friendly e lo zero -headache simili. Ora, molte persone utilizzano un hosting condiviso, e molti di loro offrono solo accesso FTP diretto al htdocs-directory, ma non superiore a quello. Ciò significa che i clienti avrebbero dovuto mettere lo SQLite-Database-File all'interno delle loro htdocs, che significa che è accessibile al mondo e chiunque può scaricarlo.

Qual è il modo migliore per dare al cliente una sorta di protezione da questo, che è semplice e anche supportati su tutti i server HTTP?

È stato utile?

Soluzione

È possibile utilizzare un file .htaccess e bloccare il nome del database, quindi non è accessibile dall'esterno. Molti server saranno già fare questo per tutti i nomi di file che iniziano con un "". Questo funziona su Apache, naturalmente, ma sarà ancora bisogno di correzioni per altri server web.

La cosa migliore è quella di impostare davvero in modo tale che esso può essere ospitata sopra htdocs. Forse è possibile utilizzare uno script di installazione che controlla la radice del documento e sposta il file in una directory sqlite più alto se possibile.

Sfortunatamente, a causa SQLite è letto e scritto dallo stesso utente del server web, non c'è un modo semplice per bloccarlo giù da accesso esterno. Nascondendola e spostandolo sono le uniche soluzioni reali mi viene in mente.

Altri suggerimenti

Non c'è protezione che funziona su tutti i software del server HTTP in uso. Il meglio che puoi fare è di spostare al di fuori della radice del documento come indipendentemente da quale server web viene utilizzato non dovrebbe mai essere servito.

In realtà la protezione dei file da essere servito all'interno della radice del documento richiede la conoscenza del software server e modificarne la configurazione.

Per impostazione predefinita (per le installazioni Linux che ho eseguito tutta), Apache realmente ostruisce qualsiasi cosa che inizia con .ht di essere servita direttamente:

<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
</Files>

Se si vuole usare un nome di file come sqlite.db per il file di database, allora si potrebbe bloccarlo utilizzando questa regola:

<Files ~ "\.db$">
    Order allow,deny
    Deny from all
</Files>

Naturalmente, per attuare questa regola sulla maggior parte dei fornitori di hosting, si dovrà distribuire un file .htaccess contenente la regola. Coloro che si può perdere a volte perché non si presentano in * nIIX elenchi di directory (o in un client FTP) per impostazione predefinita.

Non sono a conoscenza di alcun tipo simile di regola che può essere utilizzato per il server Microsoft IIS in un ambiente host condiviso.

Se fosse web server Apache quindi utilizzare file .htaccess. Non sono sicuro di come farlo su IIS.

Credo che come prima cosa che si dovrebbe mettere il file index.html vuoto o equivalente per prevenire elenco di directory in del browser. Ciò non impedirà ad accedere a tale file se il nome e il percorso è noto, ma è meglio di niente se non è sicuro di quello del server web che sta per essere acceso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top