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