
Staram się stworzyć zabezpieczenie strony hasłami jednorazowego użytku, które są zapisane w pliku tekstowym.
Na samej górze strony umieściłem skrypt, który nie pozwala wczytać reszty strony dopóki nie podany poprawnego hasła. Jednak opiera on się na funkcji "stristr", więc jeśli moje hasła zapisane w pliku to przykładowo "haslo123" i "haslo1" to wystarczy przecież wpisać np. "has" i już otrzymamy dostęp, ponieważ ten ciąg znaków również występuje.
Próbowałem także wczytać wszystkie hasła z pliku do tablicy, a następnie sprawdzić funkcją in_array() czy podane przez użytkownika hasło jest poprawne (znajduje się w tablicy), ale funkcja wychwytywała tylko ostatnie hasło z pliku, reszta haseł nie działała.
<?php $sprawdz = $_SESSION['haslo']; if(stristr($hasla, $sprawdz) != true){ //jeśli nie podano poprawnego hasła wyświetl formularz wprowadzenia hasła <h2 style="margin-left:15px;">Podaj swój kod dostępu:</h2> <form method="POST" action="sprawdz.php"> //wprowadzenie hasła przez użytkownika <input type="password" placeholder="haslo" class="form-control" id="pass" name="haslo" width="300px;" style="margin-left:0px;"> '); } //nadpisanie pliku z hasłami, ale bez zapisywania hasła właśnie użytego (tak, żeby hasła były jednorazowe) file_put_contents('haslo.txt', $hasla); ?>
Plik spradz.php:
<?php $haslo = $_POST["haslo"]; $_SESSION['haslo'] = $haslo; ?>
Mam nadzieję, że można rozwiązać mój problem w miarę prosty sposób

(Zdaję sobie sprawę, że takie zabezpieczenie nie należy do bardzo bezpiecznych, ale na potrzeby nauki mogę sobie na to pozwolić
