Ciao, mi servirebbe un aiutino, ho cercato ma non ho capito bene come devo fare!
ho alcuni file che possono essere scaricati solamente da utenti autenticati, quindi nella view che mi mostra i file ho settato l'accesso al ruolo "utente autenticato".
In admin/settings/file-system è settato "sites/default/files" e il metodo è pubblico, devo cambiare qualcosa per evitare che qualcuno scarichi questi file senza l'autenticazione?
Grazie
in "permissions" setta che gli utenti non autenticati non abbiano accesso agli upload, se no succede che se per puro caso arrivino al file, possono comunque scaricarlo.
Slice2Theme Servizio per la conversione di Design in markup HTML e/o temi.
WeBrain Solution | Pillsofbits Of Bits
Dipende del meccanismo (upload/download) e livello di sicurezza.
Credo che anche se cambi i valori come spiegato da kiuz, se conosci l'URL, si puo' sempre fare il download anonimo del file (perche' e' nella zona pubblica del file system). Provare per credere... Questo potrebbe succedere se, per esempio, io forse autenticato e tu non, ma ti mando l'URL per email. (Esempio un po' forzata, perche' potevo mandarti anche il file ;-) Tutto dipende dal tuo livello di paranoia (o quello del tuo cliente).
Per un sito con contenuto pubblico (diciamo dei depliant), e contenuto privato (uhm, listino rivenditori), un modulo come Private Download controllerebbe i permessi a scaricare un file (irrispetivo dei nodi). Ma (c'e' sempre un ma) i file devono essere trasferiti al sito tramite FTP. Questo modulo l'ho usato io.
Altrimenti prova Private Upload, ma (cosa dicevo) questo ha dei conflitti con altri moduli del tipo upload. Non l'ho mai provato pero'.
Più imparo, più dubito.
Nel frattempo stavo provando private_download, mi ha creato la cartella "sites/default/files/private", ma i file che avevo caricato, e che nella tabella files del DB hanno il path "sites/default/files/nomefile.pdf", come vanno modificati?
e nel caso li trasferisca via FTP li devo inserire e collegare manualmente al nodo nel DB?
____________________
Ho disabilitato private_download e ho provato private_upload, mi aggiunge una casella pubblico/privato negli allegati sui nodi e se metto privato mi sposta il file nella cartella private.
- Nel nodo il link al file è: .../system/files/private/nomefile.pdf e me lo fa scaricare
- Nella view il link è: .../sites/default/files/private/nomefile.pdf e mi da questo errore:
You don't have permission to access /cbe/sites/default/files/private/nomefile.pdf on this server.
Se il modello "FTP upload, download con controllo accesso" ti va bene, e' sufficiente private_download. Io lo preferisco perche' e' semplice.
Se il modello "Upload tramite browser, download con controllo accesso" ti va meglio, allora il voto va a private_upload, ma devi evitare i moduli di conflitto.
I file in sites/default/files normalmente vengono serviti al browser da Apache (veloce, e' quello che fa meglio) non da Drupal (lento, non e' un file server, e un CMS). Pensa al favicon, logo, ecc.
Drupal (ed i suoi controlli d'accesso) gestisce il contenuto dei nodi.
Quando setti il file system a privato in admin/settings/file-system, fai passare il controllo files da Apache a Drupal. Ma devi decidere, l'uno o l'altro.
Come? Beh, sites/default/files (Apache) non e' piu' disponibile ai anonimi, ma system/files (Drupal) si - se hai i permessi Drupal necessari, cioe' hai fatto il login, e' sei un tipo affidabile, e non mi devi dei soldi.
Per chiarire un po: sites/default/files (Apache) === system/files (Drupal) - stesso indirizzario, diversi percorsi, adirittura diversi applicativi.
Con uno o l'altro di questi moduli, puoi avere la torta e mangiarlo. Cioe' public per favicon, et al., private per documenti, er, privati.
Come? Beh, sites/default/files (Apache) rimane come il solito cioe' accessibile ai anonimi, ma sites/default/files/private (Apache) non e' piu' disponibile.
system/files (Drupal, ma meno efficace) e accessibile ai anonimi e system/files/private (Drupal) e disponibile o non secondo i permessi di Drupal, e se mi devi dei soldi.
Quindi, quello che hai notato come link e' un comportamento corretto - sites/default/files/private non dev'essere accessibile, ma system/files/private si - presumo che fai questi test come admin (id=1).
WTF? Beh, se cambi il sito da public a private, o abiliti private_upload o private_download, dopo che hai 'associato' un file con un nodo non so se tutto viene modificato come pensi. Crea un nuovo nodo adesso, con private_upload attivo, uploadi (dal verbo uploadare) un immagine o pdf diverso, poi controlla la pagina, il view, e il file.
Se non funziona ancora, abbiamo un problema, Houston.
Più imparo, più dubito.
Preferirei "Upload tramite browser, download con controllo accesso" con private_upload visto che non ho moduli che vanno in conflitto.
- ho attivato private_upload, mi ha creato la cartella "sites/default/files/private" con questo file .htaccess:
SetHandler This_is_a_Drupal_security_line_do_not_remove
Deny from all
- admin/settings/file-system è settato a: sites/default/files, metodo: pubblico (è sempre stato così dall'installazione)
- creo un nuovo contenuto, allego il file e lo setto come privato, il file me lo mette in "sites/default/files/private"
- nel nodo il link al file è: /system/files/private/ciao.pdf ma me lo fa scaricare anche quando non sono loggato!
- nella vista il link è: /sites/default/files/private/ciao.pdf e mi da errore: You don't have permission to access /sites/default/files/private/ciao.pdf
PS: i test li ho fatti sia come "admin" che come "utente autenticato"
Non riesco a capire dove sta il problema....
_________________________________
Nel caso volessi usare private_download
- dove carico i file via FTP?
- come creo una vista tipo questa che mi elenchi i file? http://www.cbe.it/it/istruzioni
Dato che usi questo modulo mi potresti spiegare per favore se posso farlo?
Grazie
Bravo Sherlock!
Sembra che ci sia un 'misunderstanding' fra views e private_upload. Ma sembra anche che hai trovata la soluzione. Non avevo usato views + private_upload io.
Questa frase mi preoccupa un po'. Se si chaimava "private_upload.tar.gz" penso che non avresti problemi, vero?
Comunque
.zip
(Windows) ~=.tar.gz
(Linux)Ti lo spiego, ma solo se prometti di:
Oppure ignori questi consigli, prendendo tu la piena risponsibilita' per eventuali perdite di dati, capelli, ecc.
Non dovrebbe succedere niente di male, ma (c'e' sempre un ma) non si sa mai.
Più imparo, più dubito.
In sites/default/files/private
Ah, bella domanda. Io usavo un page, scrivendo i link (system/files/private/nomefile.estensione) a manino perche' erano pocchi file.
L'utente risponsabile per i file modificava la lista nella pagina. Molto semplice, ma funzionale.
Per chi non vuole avere un collegamento FTP (vi capisco), in realta' io usavo SFTP tramite SSH.
HTH
Più imparo, più dubito.
Ciao Watson, ti ringrazio per l'aiuto...
tranqui, ogni modifica la provo prima su una copia del sito e in ogni caso poi copio l'intera cartella ed esporto il DB; il problema non era tanto il .zip ma dove mettere quei file :-) ...
copiando i file del .zip nella cartella modules il link sul nodo e quello sulla view ora hanno lo stesso percorso: /system/files/private/ciao.pdf e mi lascia scaricare i file,
resta il fatto che se faccio il logout e inserisco il percorso di quel file me lo fa scaricare comunque!
secondo te può andare bene così o c'è una qualche possibilità che qualcuno trovi quei file della cartella private?
Bene siamo alla frutta. Credo che private_upload sia il migliore modulo per il tuo scopo.
Scusa se sono stato pedantico, ma su questo sito gli utenti variano tanto nella loro conoscienza. Volevo essere prudente, ma questo mi sembra che hai capito.
Oooh codice. Cosa dice? Solo che se hai il permesso di vedere un qualunque nodo che e' 'associato' al file, allora puoi anche scaricare il file, se no, no. Neanche a pagamento.
Presumo che come utente anonimo puoi vedere il nodo. Oops. Forse nodeaccess ti permettera' a nascodere il nodo (e quindi il link, ma anche system/files/private/nomefile.ext).
Messo a posto quest'ultimo:
Per anonimo intendo un utente che non ha permessi di vedere il nodo.
Non completamente blindato, ma almeno questo supera il mio livello di paranoia.
Curioso che il codice citato (da private_upload.module, riga 234) non controlla per quel essere suprema, uid=1. Hmmm.
HTH
Più imparo, più dubito.
Con nodeaccess è perfetto!
ti ringrazio un sacco!
Ciao ciao
Ha funzionato bene fino ad oggi, ed ecco che salta fuori il problema... senza aver installato altri moduli o modificato impostazioni.
Private_upload mi da questi 2 errori:
- Unable to test file access:
- Very bad! Your private files are not private!
se vado a vedere nei log c'è questo:
fsockopen() [function.fsockopen]: unable to connect to www.cbe.it:80 (Unknown error) in /home/htdocs/cbe/modules/private_upload.module alla riga 768.
Sapete aiutarmi per favore?
Hmm. Ho guardato il codice (riga 138):
Non e' che hai cancellato, modificato o perso il file
.htaccess
nel$private_path
per caso?John
Più imparo, più dubito.
No no, il file .htaccess c'è ancora, e non ho modificato niente...
[root@ServerWeb private]# more .htaccess
SetHandler This_is_a_Drupal_security_line_do_not_remove
Deny from all
l'unica cosa che ho fatto è stato riavviare il server, forse è quello perchè il problema me lo fa su 2 installazioni di drupal (1 è quella che uso per fare i test), non è che sia qualche permesso?
che utente.gruppo devono avere le cartelle di drupal?
Ho provato a cancellare il file privacy_test.txt e salvando le impostazioni me lo ricrea senza problemi
- Added test file: sites/default/files/private/privacy_test.txt.
ma mi da sempre i 2 errori:
- # Unable to test file access:
- # Very bad! Your private files are not private!
Buongiorno,
una domanda....
ho provato il modulo private_download.. seguendo le indicazioni che avete dato..
ma a me non ha creato la cartella
"sites/default/files/private"
è normale la cosa?