![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 294 Pomógł: 4 Dołączył: 19.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Tworzę tak dla siebie, dla nauki mozna tak powiedzieć skrypt logowania.
No dobra, zrobiłem formularz. (oczywiscie juz tebala w sql zrobiona i zalozony uzytkownik); i teraz przejdźmy do pliku login.php
Oczywiście config.php jest zabezpieczony przez htaccess ( cba i boo.pl mają ) przez deny from all. 1. Odbieramy z formularza dane. 2. Kodujemy hasło md5(). 3. Łączymy się z bazą. 4. Sprawdzamy czy istnieje taki użytkownik i czy hasło jest poprawne. a) Jeżeli tak, wyświetlamy komunikat. (IMG:http://forum.php.pl/style_emoticons/default/cool.gif) Jeżeli nie, wyświetlamy komunikat. Jeżeli wszystko jest poprawnie, wyświetla się komunikat, by przejść na stronę admin.php . No dobra jesteśmy. I tutaj zaczynają się schody, BO :
1. zaczynamy sesję. 2. Robimy warunek, że gdy zmienna $czy = 1 to poprawna sesja, jeżeli nie przekierowywujemy location zeby sie zalogować. Jednak jest tutaj problem, ponieważ na jednym serwerze gdy bez logowania przejdziemy do pliku admin.php to normalnie przekierowywuje jezeli sie nikt wczesniej nie zalogował jeżeli zalogował to normalnie plik sie wyświetla. A na drugim serwerze obojętnie czy się ktoś zlogował, czy nie i tak normalnie się wyświetla Panel użytkownika... I moje pytania ; 1. Dlaczego na jednym serwerze działa ( działa na boo.pl, nie działa na cba.pl - na innych nie próbowałem ) ze przekierowywyuje nas zeby sie zalogować a na drugim nie ? 2. To jest pierwszy mój skrypt, więc jest pewnie baardzo dużo błędów, co w nim poprawić by był bezpieczniejszy ? Bo tak naprawdę tylko jest zakodowanie hasła jak przy rejestracji i nic więcej. i co jest jeszzcze w takim skrypcie nie zbędne ? Liczę na jakieś wskazówki (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Zobaczyłem początek listingu i dalej już nawet nie czytałem.
1. podatność na SqlInjection Zainteresuj się mysql_real_escape_string" title="Zobacz w manualu PHP" target="_manual lub mysql_escape_string" title="Zobacz w manualu PHP" target="_manual oraz tematem o bezpieczeństwie 2. Ten warunek nigdy nie będzie spełniony, bo md5 z pustego ciągu to d41d8cd98f00b204e9800998ecf8427e. Sprawdź:
3. A to już zupełnie jakiś kosmos... Skoro wczytujesz plik PHP, to nie łatwiej zadeklarować w nim zmienne, a plik include" title="Zobacz w manualu PHP" target="_manual'ować / require" title="Zobacz w manualu PHP" target="_manual'ować?
Ten post edytował sowiq 9.07.2009, 11:09:08 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 175 Pomógł: 30 Dołączył: 9.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Zobaczyłem początek listingu i dalej już nawet nie czytałem. 1. podatność na SqlInjection
Skoro hasło i tak jest później hashowane, to chyba nie trzeba używać mysql_real_escape_string? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 14:05 |