• Super User

    @Tuonorosso said:

    ops...io mi ero dimenticato :bho:
    :quote:utenti non prendete esempio da questo moderatore!

    :yuppi: :yuppi: :yuppi:


  • Super User

    @PaTeR said:

    utenti non prendete esempio da questo moderatore!

    :yuppi: :yuppi: :yuppi:

    ehhehe...davvero...a meno che non vogliate diventare mister universo...non imitatemi 😄


  • Super User

    Allora ragazzi la questione password è già stata trattata, ma vorrei discutere ora dell'hashing in sè.

    Message-Digest algorithm 5
    Ecco qui il famoso MD5... vi sarete chiesti a che serve qualche volta... no? Ebbene, esso non serve affatto a CRIPTARE una password, bensì a calcolare l'hash di una stringa. Per utilizzarlo PHP mette a disposizione la sua bella funzioncina built-in [url=php.net/md5]md5()

    
    string md5 (
          string str ,
          [ bool raw_output ]
    )
    
    

    In questo prototipo troviamo STR che è la stringa da hashare, e l'opzione booleana RAW_OUTPUT che per default è FALSE. Naturalmente non è possibile risalire alla stringa originale, perchè alcune operazioni dell'algoritmo non sono reversibili ( come la moltiplicazione: 6 è 23, ma potrebbe anche essere 16 ).

    LA SICUREZZA DI QUESTO ALGORITMO
    La sicurezza di questo algoritmo è alta, ma certamente non è sicurissima: sono infinite ( come tutte le cose ) le stringhe possibili che potrebbero dare come risultato lo stesso hash. Però non preoccupatevi: è molto raro che un lamer le trovi, se non con attacco [url=http://en.wikipedia.org/wiki/Brute_force_attack]Brute-Force che tralaltro sarebbe molto dispendioso per lui.

    COME EVITARE GLI ATTACCHI BRUTE-FORCE
    Per evitare attacchi di questo tipo molti siti permettono un massimo di 3 login per uno stesso utente ogni 15 minuti: come il PIN del cellulare... 3 tentativi, allo scadere di questi l'utnte dovrà aspettare 15 minuti ( o quello che volete voi ) prima di tentare un nuovo accesso! Per gestire questo genere di protezione, vi basta controllare i login di un utente ( non interessa manco l'IP ) ed allo scadere dei tre tentativi ( controllati dallo script di accesso che aumenterà i tentativi falliti ) bloccherà i login di quell'utente trascrivendo nel database il timestamp di quell'accesso permettendo allo script del login di calcolare il tempo necesssario per permettere un nuovo accesso. Molti script usano questo metodo, come phpBB e altri forums.

    MD5 in Javascript?
    Ma comunque resta un problema: facciamo passare la password in chiaro??? NOOOO!

    Ora dobbiamo adottare uno stratagemma!

    1. Usare la classe MD5 per javascript
    2. Creare un algoritmo proprio

    Ora vi spiegherò come usare MD5 in Javascript, sistema che comunque in alcuni casi non funzionerà... perciò bisogna decidere se

    1. Obbligare il client ad abilitare js
    2. Metterlo al corrente che il sistema non è sicuro e passare la password in chiaro

    Così dovremo procedere in questo modo:

    Avremo un campo <noscript> che setterà un valore POST in modo tale che esso sarà 'disabled' solo se il js è disattivato

    <noscript><input type='hidden' name='js' value='disabled'></noscript>
    

    ed un campo <script> che setterà il campo su 'enabled'

    <script lang='javascript'>document.write&#40;"<input type='hidden' name='js' value='enabled'>"&#41;;</script>
    

    così, sempre in js cripteremo il campo con [url=http://pajhome.org.uk/crypt/md5/]questo javascript prima che avvenga il passaggio all'altra pagina.

    Lo script lato-server controllerà il valore di 'js' e se sarà su enabled non hasherà il campo della password, se invece è su disabled lo hasherà.

    LINKS UTILI

    http://www.faqs.org/rfcs/rfc1321
    http://pajhome.org.uk/crypt/md5/
    http://en.wikipedia.org/wiki/Brute_force_attack
    http://userpages.umbc.edu/~mabzug1/cs/md5/md5.html

    Conclusioni
    Ci sono tanti modi per criptare una stringa, io vi ho dato informazioni sul metodo più noto... a voi il resto!

    Ciao!


  • User

    Pater, è possbile avere la stessa sicurezza con uno script solo di php???
    di java non ne so nulla .


  • Super User

    @Albertorrr said:

    Pater, è possbile avere la stessa sicurezza con uno script solo di php???
    di java non ne so nulla .Vedi, il problema è la sicurezza del trasferimento dei dati dal client al server. Col Java possiamo hashare la stringa in anticipo rendendo impossibile la decodifica. ( Con la brute-force sarebbe una sfida... )


  • User

    @PaTeR said:

    Vedi, il problema è la sicurezza del trasferimento dei dati dal client al server. Col Java possiamo hashare la stringa in anticipo rendendo impossibile la decodifica. ( Con la brute-force sarebbe una sfida... )
    Ho capito, volevo dire anche che in alcuni siti mettono un numero casuale da riscrivere, sai come funziona e se è sicuro???
    L'ho visto anche in quello di MSN quando fai un nuovo account

    Ciao 🙂


  • Super User

    @Albertorrr said:

    Ho capito, volevo dire anche che in alcuni siti mettono un numero casuale da riscrivere, sai come funziona e se è sicuro???
    L'ho visto anche in quello di MSN quando fai un nuovo account

    Ciao :)Quello serve per non permettere automatizzazioni di registrazioni. E' un'altra cosa... Per avere una sicurezza in più al limite potresti usare SSL...


  • User

    Ho capito


  • User Attivo

    posso unirmi al progetto?


  • User

    anche io dovrei fare una cosa del genere...
    solo che avete spiegato bene come creare la tabella o le tabelle... poi siete passati alla protezione della passwd... ma in mezzo non avete spiegato molto..
    cioè di codice PHP per le loggarsi , le sessioni ecc... come si fanno??


  • User

    Ragazzi nessuno porta più avanti questo progetto?? :mmm: :mmm: :mmm:
    Sarei curioso di avere il codice di controllo del login per verificare il tutto..


  • User

    Sul sito html a proposito del login che abbiamo progettato un tipo dice:

    il valore casuale viene assegnato alla sessione, le sessioni non sono un metodo sicuro se il server non è dedicato, l'invio del valore random rimane comunque trasparente, quindi al limite bisognerebbe settare un cookie e rileggerlo con JS .... ma anche il cookie di fatto è un invio in chiaro di un dato.

    In sintesi, stai perdendo tempo per un sistema che comunque non sarà più sicuro di una normae login, a meno che tu non stia su SSL, ma aquel punto tutti questi giri diventerebbero pressapoco inutili.
    se non sei in un server configurato ad hoc o sei in un server virtuale è facile che le sessioni vengano semplicemente salvate nella tmp di sistema, condivisa da più utenti e leggibile da tutti.

    Ma a prescindere da questo, ammesso che tu sia su un server dedicato, nel momento in cui comunichi al client questo fantomatico valore random lo hai già inviato in chiaro, sia che tu l'abbia salvato sulla sessione che non, visto che la sessione non è leggibile dal client e che devi quindi mostrare il valore per assegnarlo o comunicarlo
    E' tutto vero??
    Lo sforzo che stiamo facendo non serve davvero a niente..
    Spero in una risposta.
    Grazie!


  • Super User

    Mi sono un po perso nel progetto...qualcuno può farmi un riassunto? 😄


  • User Newbie

    Ho trovato una guida alle sessioni di Davide Coppola per l'autenticazione degli utenti nel sito:([url=http://www.siforge.org/articles/2003/11/10-guida_sessioni_php.html]Guida alle sessioni in PHP [SIForge.org]) ,la sto studiando .
    Ho scaricato inoltre questo script per consentire l'accesso a determinate pagine protette di un sito tramite l'autenticazione degli utenti registrati .
    [url=http://php.html.it/script/download/3350/advance-login-system/]|► Forum per Webmaster
    Fa uso delle sessioni e di un dB.
    Mi sembra buono, anche se sono convinta potrebbe essere migliorato.Ad esempio criptando le password , e facendo scadere la sessione non alla chisura del broswer , come fa questo script, ma dopo un intervallo di tempo stabilito.

    Date un'occhiata ci sono un sacco di spunti.
    Proviamo a lavorarci insieme ????


  • User Newbie

    lo script che ho scaricato si trova a questo indirizzo

    [url=http://php.html.it/script/download/3350/advance-login-system/]|► Forum per Webmaster


  • Super User

    a me l'indirizzo sembra lo stesso 😄


  • User Newbie

    Ehilaa !! Si batte la fiacca eh ?
    Buona estate a tutti !!!!!!!
    Ci sentiamo presto spero....


  • ModSenior

    il progetto è kiuso???


  • User

    Ciao ragazzi,
    io ho provato questo metodo ma non riesco a capire se è giusto...
    Se visualizzo l'archivio con PhpMyAdmin il campo password è rimasto uguale... non dovrebbe essere registrato criptato?

    Purtroppo ho iniziato da poco a programmare in php e MySql e non sono molto capace.

    Grazie e Buona Giornata a tutti!:yuppi: