Visualizzazione risultati 1 fino 12 di 12

Discussione: [.htaccess] Bloccare qualsiasi accesso non consentito a dei files txt

  1. #1
    Guest

    Predefinito [.htaccess] Bloccare qualsiasi accesso non consentito a dei files txt

    Salve a tutto il popolo di Altervista :)

    premetto che nn ho MAI usato htaccess in vita mia, ma c'è sempre la prima volta :P

    Sto creando un sito e-commerce (nn qui su AV), per il quale nn uso assolutamente database, ma solo files di testo.

    Ora, fin qui nn c'è problema, ma resta il fatto che in uno di quei files txt vengono memorizzate anche le password degli utenti...
    quindi, chiedevo, oltre a criptare le password, cosa che faccio, c'è un modo per impedire in modo definitivo l'accesso ai file txt "sensibili", se non dal server stesso? (in pratica l'unica "cosa" che può accedere ai dati è una pagina PHP residente sul server stesso, e nn ci deve essere altro modo per leggere quei files)

    Grazie in anticipo, ciauz
    Ultima modifica di Zorinik : 31-01-2008 alle ore 20.24.22

  2. #2
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Se inserisci tutti i file txt in una cartella e questa la proteggi da .htaccess gli unici ad accedere ai files saranno l'amministratore che ha la password e il file php che usa quei dati.
    Apprezzi l'aiuto? Offrimi un caffè!

  3. #3
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    prima cosa, è male memorizzare le password. Anche solo perché tu potresti leggerle. Perché non memorizzare l'hash ottenuto con crypt()?

    per il file txt, non complicarti la vita: avrai tutti i file in una directory, proteggi quella col "lucchetto" di AlterVista. E' su un altro server? proteggi una directory qua su AlterVista, poi copia i file .htaccess e .htpasswd
    Ultima modifica di dreadnaut : 31-01-2008 alle ore 20.28.47

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da miki92 Visualizza messaggio
    Se inserisci tutti i file txt in una cartella e questa la proteggi da .htaccess gli unici ad accedere ai files saranno l'amministratore che ha la password e il file php che usa quei dati.
    E come si protegge? :P

    (in sostanza: una buona guida x proteggere cartelle con htaccess dov'è?)

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    prima cosa, è male memorizzare le password. Anche solo perché tu potresti leggerle. Perché non memorizzare l'hash ottenuto con crypt()
    Vedrò su questo "crypt", funzione x me sconosciuta finora....

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    per il file txt, non complicarti la vita: avrai tutti i file in una directory, proteggi quella col "lucchetto" di AlterVista. E' su un altro server? proteggi una directory qua su AlterVista, poi copia i file .htaccess e .htpasswd

    Voglio rendere il sito scaricabile successivamente come "template" (è ampiamente personalizzabile in molte parti infatti), quindi nn deve essere in alcun modo correlato ad AV

    EDIT: rileggendo, forse x quest'ultima mia frase nn ho ben capito quello che m hai suggerito
    Ultima modifica di Zorinik : 31-01-2008 alle ore 20.57.32

  5. #5
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Beh una guida non so dove si trovi ma ti do questo link che ti genera i due file che ti interessano per proteggere la directory.
    Apprezzi l'aiuto? Offrimi un caffè!

  6. #6
    Ospite Guest

    Predefinito

    Forse un'occhiata ai miei post qui potrebbe esserti utile.

    Vedrò su questo "crypt", funzione x me sconosciuta finora....
    Ovviamente puoi utilizzare anche sha1() o md5(), a seconda dell'algoritmo di hashing che vuoi utilizzare.

    Ciao!

  7. #7
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    @zorinik:
    intendevo che per vedere come si protegge una cartella con .htaccess puoi usare il lucchetto di AlterVista e poi guardare i file .htaccess che esso ha generato, e che funzioneranno su qualsiasi server Apache.

    @probid:
    crypt() fa un lavoro leggermente diverso ed è dedicata alle password, rispetto alle due funzioni che hai citato che creano soltanto un hash (più utile per firme).

    In particolare crypt() aggiunge un "salt" (inteso come pizzico) di dati casuali che permettono di ottenere due hash diversi dalla stessa password, ma riottenere lo stesso conoscendo il salt - un po' come i file shadow di Unix. In più, dovrebbe usare di default il metodo più sicuro disponibile, fra DES, md5, sha1, etc. ma è retrocompatibile. Qundi, un gran lavoro che fa lei al posto tuo

    Il tutto si traduce nel rendere molto più facile e sicuro gestire hash di password:
    Codice PHP:
    // per ottenere l'hash+salt della password
    $password = crypt('mypassword'); // per ottenere l'hash

    // per verificare se una password in input corrisponde all'hash
    if (crypt($user_input, $password) == $password) {
    echo
    "Password verified!";
    }
    (adattato da php.net)

  8. #8
    Guest

    Predefinito

    Allora, per .htaccess proverò domani, mentre per il crypt il meglio che son riuscito ad ottenere è, in fase di registrazione, scrivere sul txt il valore di ritorno di
    Codice PHP:
    crypt($password_inserita,"saltconosciuto");
    mentre al login, per verificare la pass, faccio:
    Codice PHP:
    if(crypt($password_inserita,"saltconosciuto")==$valorelettodaltxt){
    echo
    "LOGIN EFFETTUATO";
    }else{
    echo
    "PASS SBAGLIATA!!!";
    }
    di funzionare funziona, quindi va bene no?
    Ultima modifica di Zorinik : 31-01-2008 alle ore 21.51.56

  9. #9
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    si, ma se non metti "saltsconosciuto" crypt() lo genera da solo e sempre diverso, che è una sicurezza in più. Basta fare come nell'esempio sopra

  10. #10
    Guest

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    si, ma se non metti "saltsconosciuto" crypt() lo genera da solo e sempre diverso, che è una sicurezza in più. Basta fare come nell'esempio sopra

    Se nn metto quel valore nn m valida la pass anche se giusta però, essendo sempre diverso

  11. #11
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    invece si, è quello il trick meraviglioso perché il salt viene memorizzato assieme all'hash, e riutilizzato automaticamente dalla funzione per controllare - però non va usata come ha fatto tu, ma come mostrato nell'esempio di php.net (sopra e qua riportato)

    Codice PHP:
    $password = crypt('mypassword'); // per ottenere l'hash

    if (crypt($user_input, $password) == $password) {
    echo
    "Password verified!";
    }
    Anche se i nomi dati alle variabili in questo esempio mi sembrano confusionari... riscriviamolo all'italiana

    Codice PHP:
    // prendi una password e la cripti con salt automatico, ottenendo un hash sempre diverso
    $hash = crypt( $nuovapassword );
    // che salvi da qualche parte (db o file)

    // quando vuoi controllare se la password inserita dall'utente corrisponde, riusi crypt
    if ( crypt($inserita, $hash) == $hash ) {
    echo
    "Password corretta";
    }
    nota che nella seconda chiamata metti l'$hash nel parametro che dovrebbe contenere il salt! e questo è corretto, è il modo contorto in cui funziona questa (ehm) funzione. Schematizzando:
    • hash <= crypt ( password )
    • crypt ( password, hash ) == hash s.se password è quella corretta

    dove la seconda riga va intesa come: "se ricripto la password con lo stesso salt," -che è contenuto anch'esso in hash-, "ottengo lo stesso risultato?"


    - Tecnicismi aggiunti, estremi ed addizionali:
    la stringa restituita da crypt() è una mini struttura dati definita così:
    Codice:
    $<tipo-hash>$<salt>$<hash>
    
    esempio: $1$9G1.cZ5.$IljQeucKr4ZSrCzrU7sne1
    dove tipo-hash è un numero che indica quale funzione è stata usata per criptare la password (fra DES, md5, sha-1 et al.), salt sono i dati che sono stati aggiunti alla password prima di criptarla ed hash è il risultato della funzione chiamata.
    Se il secondo parametro non viene specificato, il salt viene generato casualmente (sicurezza estrema!). Se il secondo parametro è una struttura del tipo sopra, il salt viene recuperato dall'apposita sezione della stringa.
    Ultima modifica di dreadnaut : 01-02-2008 alle ore 13.42.56

  12. #12
    Guest

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    invece si, è quello il trick meraviglioso
    [...CUT...]
    Perfetto! Funziona tutto! Grazie mille
    Ultima modifica di Zorinik : 04-02-2008 alle ore 14.04.03

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •