Soluzione semplice per limitare l'accesso a (alcuni) upload/download

28 mag 2013, 00:50:54
Visualizzazioni: 18.3K
Voti: 16

Situazione iniziale

Per un sito che sto configurando, stavo esaminando il campo della sicurezza per gli upload/download e della limitazione dell'accesso in base ai ruoli/permessi degli utenti. Naturalmente ho letto alcune delle domande precedenti relative all'argomento (generale) qui, per riferimento le più importanti/interessanti che ho trovato:

Note supplementari

Generalmente non è una cattiva idea migliorare ulteriormente la sicurezza della tua installazione WordPress - ad esempio proteggendo il tuo wp-config.php - ci sono molte cose che puoi e dovresti fare. Ci sono tantissime informazioni su come farlo. Nel contesto di questa domanda sono principalmente interessato ai miei upload/download.

Gli upload di WordPress non sono protetti, chiunque può sfogliare la cartella uploads, a meno che non lo previeni con un .htaccess:

Options All -Indexes

Il file .htaccess deve essere posizionato all'interno della cartella uploads. Ma questo non le protegge veramente, rende solo più difficile trovare i file. Inoltre puoi prevenire il hotlinking, limitando essenzialmente l'accesso in base al referrer - sebbene sia un caso leggermente diverso ho pensato di menzionarlo, non approfondirò ulteriormente, puoi trovare molte informazioni al riguardo.

Ovviamente c'è la possibilità di rendere i post privati o creare un custom post type con template adatti per renderlo privato, ma questo non protegge i tuoi file. Lo stesso vale per il wrapping dei file in condizionali come is_user_logged_in() o is_admin().

Come nota a margine ci sono molti plugin che promettono di rendere i tuoi file sicuri e protetti, ma molti di loro fingono solo di farlo, alcune delle ragioni sono sopra. Lo segnalo perché sono abbastanza sicuro che non sia noto a tutti - quindi, attenzione.

Obiettivo

La mia intenzione era poter limitare l'accesso ad (alcuni) upload e rispettivamente download. E assicurarmi che nessuno indesiderato potesse accedervi, non per caso o se qualcuno conoscesse il nome del file, i file dovevano essere veramente privati e sicuri. In definitiva solo alcune persone specifiche dovrebbero avere accesso senza eccezioni.

Inoltre non avevo bisogno di privatizzare l'intero sito, anzi sarebbe stato controproducente - è usato per scopi di presentazione pubblica. Inoltre volevo che la soluzione fosse facilmente utilizzabile, per il semplice motivo che alcune delle persone che ci lavorano non sono esattamente esperti di computer, come spesso accade.

Domanda

Quindi la domanda: c'è un modo (relativamente) semplice per limitare l'accesso ad (alcuni) upload e i rispettivi download? E come ho spiegato, significa un modo per proteggerli e renderli sicuri veramente?

4
Commenti

Dovresti aggiungere la tua soluzione come risposta invece di incorporarla nella domanda.

s_ha_dum s_ha_dum
28 mag 2013 02:00:39

E per favore usa le lettere maiuscole/minuscole correttamente. Sembra una chat...

kaiser kaiser
29 mag 2013 00:25:10

Grazie per la critica costruttiva, modificherò e ristrutturerò il tutto al più presto.

Nicolai Grossherr Nicolai Grossherr
29 mag 2013 00:36:24

Sono curioso, cosa ne pensi di questo plugin? https://preventdirectaccess.com/faq/

Sam Sabin Sam Sabin
28 gen 2025 03:54:29
Tutte le risposte alla domanda 1
0

Rispondo qui alla mia domanda perché ho trovato una soluzione, ma sono davvero interessato alle vostre opinioni al riguardo. O forse avete una soluzione molto migliore, in tal caso, mi piacerebbe davvero sentirne parlare.

Risultati della ricerca

I risultati della mia ricerca sono stati:
1. posizionare i file al di fuori della root del documento, cartella www;
2. impedire qualsiasi accesso diretto alla cartella contenente i file;
3. far gestire le richieste dei file da uno script;
Le fonti per questi punti sono - almeno in gran parte - incluse nella mia domanda.

Soluzione

  1. Ho installato il plugin »wp-downloadmanager«
    • nel processo viene creata una cartella chiamata files all'interno di wp-content;
  2. Ho aggiunto un file .htaccess alla nuova cartella files:
    • contenuto del .htaccess:
      Options All -Indexes
      Order Deny,Allow
      Deny from all
  3. Ho modificato un'opzione importante del plugin:
    • l'opzione a cui mi riferisco è metodo di download;
    • l'ho cambiata in output file;
  4. Ho aggiunto alcuni file tramite l'interfaccia del plugin:
    • c'è un'opzione chiamata consentito il download;
    • che permette di limitare l'accesso in base al ruolo/capacità dell'utente;
  5. Ho effettuato alcuni test:
    • nessun accesso diretto ai file - né tramite barra degli indirizzi né con wget;
    • i download pubblici sono raggiungibili tramite i loro permalink - ho scelto »permalink gradevoli: sì« e »url di download: id file« nel pannello delle opzioni - funziona anche tramite barra degli indirizzi/wget;
    • i download protetti e limitati sono accessibili solo se si è loggati come utente con i ruoli/capacità corretti;

Considerazioni conclusive

Penso che la soluzione segua abbastanza i risultati della ricerca. A parte il posizionamento dei file all'esterno. Ma la restrizione dell'accesso a/protezione della directory e la gestione delle richieste dei file da parte di uno script sono soddisfatte. La restrizione dell'accesso è gestita dal .htaccess e lo script in questo caso è il plugin wp-downloadmanger.

Note supplementari

  • è assolutamente necessario cambiare il metodo di download in output file
  • e ovviamente è un must che il file .htaccess sia presente

  • per verificare che il plugin assuma il ruolo dello script date un'occhiata a wp-downloadmanger.php - circa dalle righe 207 a 227 (versione 1.6.1); questo è inteso come punto complementare alle informazioni collegate

30 mag 2013 02:37:57