⊗ppPmAuAHS 425 of 447 menu

Προσθήκη αλατιού στην εξουσιοδότηση

Τώρα πρέπει να αλλάξουμε την εξουσιοδότηση. Εδώ οι αλλαγές θα είναι πιο σημαντικές.

Δεν είναι πλέον δυνατόν να ελεγχθεί η ορθότητα του ζευγαριού όνομα σύνδεσης-κωδικού αμέσως, με ένα αίτημα. Γιατί: για να ελεγχθεί ο κωδικός πρόσβασης, πρέπει να ληφθεί το αλατισμένο hash του, και το αλάτι αποθηκεύεται στη βάση δεδομένων και είναι μοναδικό για κάθε όνομα σύνδεσης.

Θα πρέπει πρώτα να ληφθεί η εγγραφή μόνο από το όνομα σύνδεσης, να διαβαστεί το αλάτι, να αλατιστεί ο κωδικός που εισήχθη και να συγκριθεί με τον αλατισμένο κωδικό από τη βάση και μόνο, εάν ταιριάζουν, - να εξουσιοδοτηθεί ο χρήστης.

Λάβετε υπόψη ότι μπορεί να συμβεί ότι το όνομα σύνδεσης πληκτρολογήθηκε λανθασμένα, σε αυτήν την περίπτωση ο έλεγχος του κωδικού πρόσβασης δεν μπορεί να πραγματοποιηθεί, αλλά να εμφανιστεί αμέσως ότι η εξουσιοδότηση δεν είναι δυνατή - τα δεδομένα δεν είναι σωστά:

<?php $login = $_POST['login']; $query = "SELECT * FROM users WHERE login='$login'"; $res = mysqli_query($link, $query); $user = mysqli_fetch_assoc($res); if (!empty($user)) { // υπάρχει χρήστης με αυτό το όνομα σύνδεσης, τώρα πρέπει να ελεγχθεί ο κωδικός... } else { // δεν υπάρχει χρήστης με αυτό το όνομα σύνδεσης, εμφανίστε μήνυμα } ?>

Ας προσθέσουμε τον έλεγχο κωδικού πρόσβασης:

<?php $login = $_POST['login']; $query = "SELECT * FROM users WHERE login='$login'"; $res = mysqli_query($link, $query); $user = mysqli_fetch_assoc($res); if (!empty($user)) { $salt = $user['salt']; // αλάτι από τη ΒΔ $hash = $user['password']; // αλατισμένος κωδικός από τη ΒΔ $password = md5($salt . $_POST['password']); // αλατισμένος κωδικός από τον χρήστη // Συγκρίνουμε τα αλατισμένα hashes if ($password == $hash) { // όλα εντάξει, εξουσιοδοτούμε... } else { // ο κωδικός πρόσβασης δεν ταίριαξε, εμφανίστε μήνυμα } } else { // δεν υπάρχει χρήστης με αυτό το όνομα σύνδεσης, εμφανίστε μήνυμα } ?>

Για λόγους ασφαλείας, συνήθως δεν ενημερώνεται ο χρήστης για το τι ακριβώς δεν ταίριαξε - το όνομα σύνδεσης ή ο κωδικός πρόσβασης, για να δυσκολέψει την εικασία ζευγαριών όνομα σύνδεσης-κωδικού από χάκερς. Απλά εμφανίζουν ένα μήνυμα ότι το ζεύγος όνομα σύνδεσης-κωδικού είναι λανθασμένο ή κάτι παρόμοιο.

Υλοποιήστε την παραπάνω εξουσιοδότηση με αλατισμένο κωδικό. Προσπαθήστε να εγγραφείτε, να συνδεθείτε, βεβαιωθείτε ότι όλα λειτουργούν.

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη