Visualizzazione risultati 1 fino 10 di 10

Discussione: Login

  1. #1
    kairos2020 non è connesso Utente giovane
    Data registrazione
    16-04-2020
    Residenza
    Castegnato (BS)
    Messaggi
    47

    Predefinito Login

    Buongiorno, ho una curiosità cui non riesco a dare risposta girovagando nel web.
    Nei manuali e nei molti tutorial di php che ho letto e/o visionato si insiste molto sulla sicurezza.
    Le ragioni di questa inistenza sono chiare anche a a un principiante come me.
    E' un aspetto della programmazione vastissimo e pertanto lo affronto a 'piccole dosi'.
    Il mio dubbio è questo, in un login è indispensabile controllare qualità e quantità dei dati, molto
    codice che ho letto su internet dedica molte righe a questi controlli, inoltre è altrettanto importante la gestione in sicurezza degli accessi al database.
    C'è moltro altro ma, per ora mi focalizzo su questi aspetti.
    Semplifico molto.
    Qualità dei dati. Si ottiene con il filtraggio dei dati, php mette a disposizione gli strumenti necessari,
    anche se filtrare, come spesso suggerito, con htmlentities() i dati, salvarli con i prepared statement di PDO e mostrarlli a video nuovamente con htmlentities() genera problemi ( discussione in un post precedente)
    La quantità dei dati. Bene ho visto due tutorial, a mio avviso eccellenti, dove si dedicava parte del codice al controllo della lunghezza degli input ed alla esatta corrispondenza tra quanto ricevuto e quanto atteso, e controllare davvero bene è molto impegnativo.
    Questo è il mio dubbio principale
    html5, nei suoi input mette a disposizione una serie di controlli, cito ad esempio min max etc, già spesso sufficienti (credo) , inoltre è possibile utilizzare le regex per verificare e validare i dati in ingresso. Infine le select dovrebbero rendere dati certi, perchè preimpostati ... o sbaglio ?
    Questi strumenti non sono validi e sicuri ?
    Infine, ho visto su youtube un esempio di Brute Force Attack, impressionante, consapevole che l'autenticazione a due vie è l'unico modo valido (per ora ... eterna battaglia tra corazza e cannone)
    ... ma purtroppo ancora non sò implementarla ... ho inserito nel login una input aggiuntivo dove
    l'utente mette una stringa random, di sicuro rallenta il login, ma serve a qualcosa ?
    Le password sono di 10-14 caratteri di tipo complesso.
    Grazie

  2. #2
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Citazione Originalmente inviato da kairos2020 Visualizza messaggio
    html5, nei suoi input mette a disposizione una serie di controlli, cito ad esempio min max etc, già spesso sufficienti (credo) , inoltre è possibile utilizzare le regex per verificare e validare i dati in ingresso. Infine le select dovrebbero rendere dati certi, perchè preimpostati ... o sbaglio ?
    Questi strumenti non sono validi e sicuri ?
    No: sono lato client quindi è possibile creare una richiesta che non rispetti nessuna delle limitazioni che imponi ai vari elementi del modulo HTML.
    Non li devi assolutamente pensare come una componente della sicurezza di un sistema, la loro unica utilità è al fine della UI/UX.
    Citazione Originalmente inviato da kairos2020 Visualizza messaggio
    Infine, ho visto su youtube un esempio di Brute Force Attack, impressionante, consapevole che l'autenticazione a due vie è l'unico modo valido (per ora ... eterna battaglia tra corazza e cannone)
    ... ma purtroppo ancora non sò implementarla ... ho inserito nel login una input aggiuntivo dove
    l'utente mette una stringa random, di sicuro rallenta il login, ma serve a qualcosa ?
    Se è solamente un campo che non viene verificato in alcun modo aggiunge ben poco alla sicurezza complessiva del sistema.
    Normalmente comunque attacchi di forza bruta contro un modulo di login non hanno molto senso a meno che l'attaccante non abbia una lista estremamente limitata di credenziali per cui c'è un'alta probabilità che siano valide.
    Le contromisure tipiche sono la limitazione del numero di tentativi nel tempo, come ad esempio l'introduzione di CAPTCHA o simili qualora si identifica un client potenzialmente malevolo.

  3. #3
    kairos2020 non è connesso Utente giovane
    Data registrazione
    16-04-2020
    Residenza
    Castegnato (BS)
    Messaggi
    47

    Predefinito

    Buonasera, un comico che mi piace molto imitando un noto personaggio ripeteva ' ... a ... come vengo a saperle io le cose '.
    Faticavo a capire la necessità di tanti controlli e tanto codice 'superfluo' ... ora è tutto chiaro, un piccolo passo in avanti.
    Grazie

  4. #4
    L'avatar di dreadnaut
    dreadnaut è connesso ora Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,259

    Predefinito

    La sicurezza è decisamente un argomento interessante, e ci sono un sacco di cose da considerare in un sistema di login. Prima di arrivare al codice, c'è anche da guardare il threat model: cosa stai cercando di proteggere? da chi? qual è il rischio?

    Proteggere un progetto personale da un vandalo di passaggio richiede meno accorgimenti che mettere in sicurezza i dati di mille utenti da qualcuno che ha un incentivo per rubarli.

    HTTPS è la base, per evitare che credenziali e dati siano 'catturabili' facilmente lungo il tragitto (e.g., wifi pubblici). Ma un sito con un singolo utente ad esempio non necessità di un nome utente, basta una password molto lunga (tipo una frase, o una stringa casuale che puoi salvare in un password manager).

    Un estremo: su internet ci sono demo di software web dove nome utente e password sono pubblici. Il rischio è che qualcuno li riempia di spazzatura, ma il database viene resettato ogni mezz'ora o simile. Quasi zero sicurezza, bilanciata da zero rischio.
    Ultima modifica di dreadnaut : 25-05-2023 alle ore 22.32.27

  5. #5
    albenessereblog non è connesso Utente attivo
    Data registrazione
    29-12-2021
    Messaggi
    326

    Predefinito

    Citazione Originalmente inviato da kairos2020 Visualizza messaggio
    Le password sono di 10-14 caratteri di tipo complesso.
    Grazie
    Qui puoi verificare quanto è sicura la tua pwd ad un attacco Forza bruta: https://www.security.org/how-secure-is-my-password/

  6. #6
    kairos2020 non è connesso Utente giovane
    Data registrazione
    16-04-2020
    Residenza
    Castegnato (BS)
    Messaggi
    47

    Predefinito

    Buongiorno,

    ALBENESSEREBLOG, ho provato il tool che mi hai indicato, il risultato è confortante.

    DREADNAUT ho letto l'articolo da te indicato, molto interessante, e complesso utile per meglio comprendere la vastità e complessità dell'argomento.

    Fortunatamente nel mio caso da difendere ho solo il ... mio orgoglio, nel senso che il sito non ha contenuti sensibili o di valore commerciale, è una raccolta, un catalogo delle mie capsule di spumante, però è anche un esercizio per migliorare le mie capacità di programmatore e per tenere in 'allenamento la mente' quindi cerco sempre di migliorarmi, all'inizio mi bastava 'fare' ora vorrei 'fare bene o fare meglio'.

    Per quanto attiene l'attacco a forza bruta, al login creo una variabile di sessione con un contatore e dopo tre tentativi di accesso non riusciti blocco l'IP dell'utente/aggressore, registro l'accaduto in una tabella e dopo 5 tentativi di 'aggressione disabilito il comado di submit del form e mi spedisco una email di avviso.

    Di sicuro è un 'tantino' paranoico e normalmente non credo applicabile a siti 'normali' la domanda è però
    può funzionare o come per il controllo degli input ( vedi risposta di karl94) è del tutto inutile ?

    Grazie per la cortese attenzione

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

    Predefinito

    Citazione Originalmente inviato da kairos2020 Visualizza messaggio
    Per quanto attiene l'attacco a forza bruta, al login creo una variabile di sessione con un contatore e dopo tre tentativi di accesso non riusciti blocco l'IP dell'utente/aggressore, registro l'accaduto in una tabella e dopo 5 tentativi di 'aggressione disabilito il comado di submit del form e mi spedisco una email di avviso.
    Contare i tentativi è una cosa saggia, ma disabilitare il pulsante nel form non è efficace. Come diceva Karl sopra, un malintenzionato non deve per forza passare dalla pagina, ma può mandare richieste POST simulando il submit. Il blocco va creato lato server.

  8. #8
    kairos2020 non è connesso Utente giovane
    Data registrazione
    16-04-2020
    Residenza
    Castegnato (BS)
    Messaggi
    47

    Predefinito

    Buongiorno, in ritardo ma finalmente credo di aver compreso qualcosa in più.
    Nel mio caso, solo per il problema specifico, mi basterebbe allora nella classe che comprende il metodo di login
    fare un controllo del contatore, se sono oltre generare una eccezione con un messaggio qualsiasi prima del controllo
    dei POST ed avviare le eventuali 'startegie' di difesa, tutto lato server.
    Magari il limite del contatore potrei fissarlo a 3 + un numero random 1-6 ... sto andando oltre.
    Grazie

  9. #9
    albenessereblog non è connesso Utente attivo
    Data registrazione
    29-12-2021
    Messaggi
    326

    Predefinito

    Citazione Originalmente inviato da kairos2020 Visualizza messaggio
    Buongiorno, in ritardo ma finalmente credo di aver compreso qualcosa in più.
    Nel mio caso, solo per il problema specifico, mi basterebbe allora nella classe che comprende il metodo di login
    fare un controllo del contatore, se sono oltre generare una eccezione con un messaggio qualsiasi prima del controllo
    dei POST ed avviare le eventuali 'startegie' di difesa, tutto lato server.
    Magari il limite del contatore potrei fissarlo a 3 + un numero random 1-6 ... sto andando oltre.
    Grazie
    Francamente non capisco la tua "paura". Ti ho dato questo tool per verificare la pwd e se la metti almeno 15 caratteri minuscoli con qualcuno maiuscolo e qualche numero, non credo che siano disposti a perdere milioni di anni per trovartela. https://www.security.org/how-secure-is-my-password/

  10. #10
    kairos2020 non è connesso Utente giovane
    Data registrazione
    16-04-2020
    Residenza
    Castegnato (BS)
    Messaggi
    47

    Predefinito

    Citazione Originalmente inviato da albenessereblog Visualizza messaggio
    Francamente non capisco la tua "paura". Ti ho dato questo tool per verificare la pwd e se la metti almeno 15 caratteri minuscoli con qualcuno maiuscolo e qualche numero, non credo che siano disposti a perdere milioni di anni per trovartela. https://www.security.org/how-secure-is-my-password/
    ALBENESSEREBLOG, la mia non è 'paura', e credimi ti sono davvero grato per il tool che mi hai indicato, e che ho utilizzato e continuerò ad utilizzare.

    Semplicemente, come programmatore, per dirla come si usa dalle mie parti, riesco giusto a fare una o con un bicchiere, e quindi eccedo in cose magari inutili e (purtroppo) tralascio, o peggio non conosco, le cose importanti,
    così come Totò nella Malafemmina (credo) ' punto... due punti etc'.
    Giusto questo.

Regole di scrittura

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