პაროლის ჰეშირება PHP-ში
პაროლის ღია სახით შენახვა არასწორია. ჰაკერ-ბოროტმოქმედს შეუძლია მიიღოს წვდომა თქვენს მონაცემთა ბაზაზე და მოიპაროს პაროლები.
ამიტომ, ჩვეულებრივ, ლოგინი ინახება ღია
სახით, ხოლო პაროლი ჰეშირდება სპეციალური ფუნქციით
md5, რომელიც პარამეტრად იღებს
პაროლს და აბრუნებს მის ჰეშს, რომლის მიხედვითაც
შეუძლებელია ამ პაროლის აღდგენა.
მაგალითად, ვიპოვოთ რაიმე სტრიქონის ჰეში:
<?php
echo md5('12345'); // გამოიტანს '827ccb0eea8a706c4c34a16891f84e7b'
?>
ახლა ჩვენ უნდა გადავაკეთოთ ჩვენი რეგისტრაცია და ჩვენი ავტორიზაცია. თავიდან მე ვურჩევდი გავასუფთაოთ მომხმარებლების ცხრილი, რადგან იქ ამჟამად პაროლები ინახება ღია სახით, ხოლო უნდა ინახებოდეს მათი ჰეშები. შემდეგ, რეგისტრაციის ტესტირებისას, ცხრილი შეივსება მონაცემებით ახალ ფორმატში.
ახლა მოდით, გამოვასწოროთ ჩვენი რეგისტრაცია ისე, რომ ახალი მომხმარებლის ბაზაში შენახვისას დაემატება არა პაროლი, არამედ მისი ჰეში.
აღწერილი ცვლილება დაახლოებით ასე გამოიყურება:
<?php
$login = $_POST['login'];
$password = md5($_POST['password']); // პაროლის გადაყვანა მის ჰეშში
$query = "INSERT INTO users SET login='$login', password='$password'";
?>
მოდით, ანალოგიური ცვლილებები შევიტანოთ ავტორიზაციაშიც:
<?php
$login = $_POST['login'];
$password = md5($_POST['password']); // პაროლის გადაყვანა მის ჰეშში
$query = "SELECT * FROM users WHERE login='$login' AND password='$password'";
?>
შეიტანეთ ცვლილებები რეგისტრაციაში ჰეშირების გათვალისწინებით, დარეგისტრირდით რამდენიმე ახალ მომხმარებელზე, დარწმუნდით, რომ ისინი მონაცემთა ბაზაში დაემატნენ ჰეშირებული პაროლებით.
შეიტანეთ ცვლილებები ავტორიზაციაში ჰეშირების გათვალისწინებით, სცადეთ ავტორიზაცია ადრე დარეგისტრირებული მომხმარებლების ანგარიშებით.