Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    1,413

    proteggere i file da utenti furbi

    ciao a tutti...ho un area riservata dove metto a disposizione del materiale in formato pdf, doc,ecc...

    ho il classico problema ( e ho gia cercato sul forum senza capire molto) che se un utente inserisce direttamente l'url nella barra degli indirizzi, si puo scaricare tranquillamente il file senza passare dall'autenticazione.

    Mi potete spiegare (magari passo passo) che tecnica si puo usare??

    grazie a tutti

  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Ciao alexinside83,

    potresti fare una paginetta che con un ADODB.Stream legge il file da scaricare nella directory che conosci solo tu e lo restituisce al client. Il nome del file da scaricare lo puoi passare in querystring.
    In questo modo puoi mettere tutti i controlli che vuoi...
    codice:
    <%@ Language=VBScript %><%
    Response.Expires=0
    Response.Buffer=0
    FileName = Request.QueryString("file")
    Path = "CartellaFile/" ' Cartella dove ci sono i file
    strFilePath = Server.MapPath(Path & FileName)
    Set fso = Server.CreateObject("Scripting.FileSystemObject")
    ' Controllo se esiste il file (qua si possono mettere altri controlli)
    if fso.FileExists(strFilePath) then
    	FileNameToSave = FileName
    	Set objStream = Server.CreateObject("ADODB.Stream")
    	objStream.Type = 1 ' adTypeBinary
    	objStream.Open
    	objStream.LoadFromFile strFilePath
    	' Dico al browser che tipo di file
    	Response.AddHeader "Content-Disposition", "attachment; filename=" & FileNameToSave
    	Response.ContentType = "application/octet-stream"
    	Response.BinaryWrite objStream.Read
    	objStream.Close
    	Set objStream = Nothing
    else
    %><html><body onload="self.close()"></body></html><%
    end if%>

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    1,413
    prima di tutto volevo ringraziarti per la risposta...poco dopo aver postato mi e capitato tra le mani il seguente script:

    codice:
    Dim objStream, strFileName
    strFileName = "prova.jpg"
    Set objStream = Server.CreateObject("ADODB.Stream")
    objStream.Type = 1 ' adTypeBinary
    objStream.Open
    objStream.LoadFromFile Server.MapPath("/desktopfaita/data/" &strFileName)
    ' Istruiamo il browser sul tipo di file
    Response.AddHeader "Content-Disposition", "attachment; filename=" & strFileName
    Response.ContentType = "application/octet-stream"
    Response.BinaryWrite objStream.Read
    objStream.Close
    Set objStream = Nothing
    che penso piu o meno abbia le stesse intenzioni del tuo.

    Volevo sapere se lo script che ho trovato ha qualche controindicazione o qualche "Buco" che puo mettere in pericolo la sicurezza dei file...grazie

  4. #4
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    il buco è questo:

    se il file è messo in una cartella dove sono impostati i permessi di lettura, anche se mascheri il nome del file, sarà comunque raggiungibile.

    Per farti un esempio, se hai come hosting aruba (o se lo conosci), sai che la cartella mdb-database, non può essere letta dall'esterno.

    Salvando i tui files in mdb-database ed usando quello script, hai la certezza assoluta di sicurezza.

    Altro problema è che ado.stream mette in memoria l'interno file e alcuni hoster ne vietano l'utilizzo per effettuare il download.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.