Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Sicurezza verifica e-mail

    Salve a tutti.
    Tramite codice PHP invio mail di conferma per attivazione account, una volta arrivata si clicca sul pulsante che porta ad un'altra pagina (solita procedura).
    Nella e-mail, nel link da cliccare, il metodo funziona utilizzando il GET che di conseguenza mostra il campo e il valore nel rispettivo record.
    Se ci metto la sola e-mail recuperata dal form di registrazione (che è del diretto interessato, perciò non serve nasconderla), c'è qualche problema?
    O meglio trasformare tutto in codici random e lunghissimi o altre cose simili?

    Chiedo in caso ci siano malintenzionati o bot.
    Grazie in anticipo.

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Se tutti i siti mettono una variabile random ci sarà un motivo. In matiera di sicurezza mai risparmiare !

    Comunque una ragione di mettere una stringa random c'è. Sarà più facile da controllare di un indirizzo mail perche ovviamente bisogna controllare il dato in entrata.

    Mettiamo che la stringa sia asde-derf-yuR1-po11-t5Gt-yuhp-ghyr. Cioè 62 possibilità per ogni carattere e con 28 caratteri hai 1,538 x 10 EE 50 combinazioni. La puoi controllare facilmente con una regexp e in questo modo impedire un attacco.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Se tutti i siti mettono una variabile random ci sarà un motivo. In matiera di sicurezza mai risparmiare !

    Comunque una ragione di mettere una stringa random c'è. Sarà più facile da controllare di un indirizzo mail perche ovviamente bisogna controllare il dato in entrata.

    Mettiamo che la stringa sia asde-derf-yuR1-po11-t5Gt-yuhp-ghyr. Cioè 62 possibilità per ogni carattere e con 28 caratteri hai 1,538 x 10 EE 50 combinazioni. La puoi controllare facilmente con una regexp e in questo modo impedire un attacco.
    Ho capito la metà, ad esempio regexp, cercando con Google, regular expression giusto?
    Io conosco il codice, io lo so individuare e a cosa corrisponde.
    Il concetto l'ho capito comunque, grazie per l'attenzione.

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Quote Originariamente inviata da FioreFix Visualizza il messaggio
    Ho capito la metà, ad esempio regexp, cercando con Google, regular expression giusto?
    Io conosco il codice, io lo so individuare e a cosa corrisponde.
    Il concetto l'ho capito comunque, grazie per l'attenzione.
    Si. si tratta delle regular expression.

    Sono sicuro che conosci il codice e che sai a cosa corrisponde. Ma bisogna sempre pensare che ogni dato che viene passato ad una pagina ($_POST, $_GET, cookie, etc...) è una minaccia potenziale. In primis bisogna controllare che il dato abbia il formato giusto non che il suo valore sia o meno in una tabella.

    Mi spiego. Mettiamo che hai mandato una mail di conferma all'utente caio_1992. Ma infatti caio_1992 è anche noto come mister_malvaggio_1992. In questo caso è in possesso di una porta di entrata nel tuo sistema tramite il link che gli hai mandato. E nulla gli impedisce mandarti altri dati nel link, dati che potrebbero essere pericolosi senza un controllo del formato del dato.

    Esempio : il link per la conferma è www.miosito.it?p=ADCD-D4Sh-AZ51-iO0P-GHNS-8dTY-lmL9

    Cosa succede se lui ti fa www.miosito.it?p=dati malvaggi e che non controlli il dato prima che passi la porta di entrata ? Se lui è bravo e tu no allora possono esserci casini.

    Quindi prima di utilizzare il dato trasmesso in una query controlli che il dato sia formato bene. In questo caso controlli che il dato sia una stringa di sette gruppi di 4 carattere separati tra di loro dal carattere trattino.

    Di conseguenza se ricevi p=14521125DQQKFNQEFNOFDNB o p=ERSD-12DJ o qualunque altro valore che non combacia con il tuo formato puoi scartarlo e non eseguire il resto del codice e sei salvo !!!
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Si. si tratta delle regular expression.

    Sono sicuro che conosci il codice e che sai a cosa corrisponde. Ma bisogna sempre pensare che ogni dato che viene passato ad una pagina ($_POST, $_GET, cookie, etc...) è una minaccia potenziale. In primis bisogna controllare che il dato abbia il formato giusto non che il suo valore sia o meno in una tabella.

    Mi spiego. Mettiamo che hai mandato una mail di conferma all'utente caio_1992. Ma infatti caio_1992 è anche noto come mister_malvaggio_1992. In questo caso è in possesso di una porta di entrata nel tuo sistema tramite il link che gli hai mandato. E nulla gli impedisce mandarti altri dati nel link, dati che potrebbero essere pericolosi senza un controllo del formato del dato.

    Esempio : il link per la conferma è www.miosito.it?p=ADCD-D4Sh-AZ51-iO0P-GHNS-8dTY-lmL9

    Cosa succede se lui ti fa www.miosito.it?p=dati malvaggi e che non controlli il dato prima che passi la porta di entrata ? Se lui è bravo e tu no allora possono esserci casini.

    Quindi prima di utilizzare il dato trasmesso in una query controlli che il dato sia formato bene. In questo caso controlli che il dato sia una stringa di sette gruppi di 4 carattere separati tra di loro dal carattere trattino.

    Di conseguenza se ricevi p=14521125DQQKFNQEFNOFDNB o p=ERSD-12DJ o qualunque altro valore che non combacia con il tuo formato puoi scartarlo e non eseguire il resto del codice e sei salvo !!!
    Ho capito tutto, ed effettivamente hai ragione e mi hai pure illuminato.
    Grazie per l'esaustiva spiegazione.

  6. #6
    Credo di aver fatto una buona cosa, più o meno come hai suggerito te.
    Se tutto risulta corretto, con l' IF faccio la connessione al database e tutto il codice, poi chiudo la connessione.
    Nell' ELSE sotto prenderei orario e IP del client; il dubbio ora sta qui, intendo sempre discorso sicurezza:
    Ho già chiuso la connessione al database, così non rischio niente, ma non posso salvare, meglio che mi autospedisca una e-mail coi dati, che salvi tutto su altri database inutilizzati, oppure dici che non rischio nulla e mi creo una nuova tabella nello stesso database?
    Spero di essere stato abbastanza chiaro.

    Grazie di nuovo!

  7. #7
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    A mio avviso. Se ricevi una richiesta corretta la esegui come dici. Se ricevi una richiesta errata sia ti mandi una mail sia non fai nulla. Io non farei nulla in questo caso.

    Se la salvi in una tabella è come se tu non controlassi nulla visto che in tutti i casi la richiesta la salvi.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  8. #8
    Quote Originariamente inviata da badaze Visualizza il messaggio
    A mio avviso. Se ricevi una richiesta corretta la esegui come dici. Se ricevi una richiesta errata sia ti mandi una mail sia non fai nulla. Io non farei nulla in questo caso.

    Se la salvi in una tabella è come se tu non controlassi nulla visto che in tutti i casi la richiesta la salvi.
    La mail è quella più sicura, la ricevo subito in caso di richiesta errata, il problema è se mi intasa la casella con dei bot.

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.