![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 339 Pomógł: 12 Dołączył: 22.11.2008 Ostrzeżenie: (20%) ![]() ![]() |
cześć:)
Chciałbym napisać system logowania oparty o mysql i sesje. Chciałbym się dowiedzieć na co muszę zwrócić uwagę podczas pisania takowego skryptu aby dany system był jak najbezpieczniejszy. Moja teoria napisania skryptu: *login.php - Sprawdza czy zostały przesłane dane (login i hasło). Jeśli tak: łączy się z bazą, wyciąga hasło z tabeli users gdzie login jest taki jak ten z POSTu. Jeśli wszystko się zgadza daję do sesji zmienną zalogowany, następnie przekierowuję na index.php (zabezpieczony przed wejściem bez sesji zalogowany). Jeśli nie są przesłane login i hasło pokazuje formularz z hasłem i loginem. *logout.php - Niszczę sesję zalogowany i przekierowuję na index.php *index.php - Sprawdzam czy jest sesja zalogowany jeśli tak - wyświetlam zawartość (u mnie będzie to system newsów) jeśli nie pokazuję link zaloguj i inne szczegóły strony. Wszystko dobrze?? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Teraz jakich funkcji i gdzie ich użyć aby mój skrypt byłbezpieczny (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 116 Pomógł: 8 Dołączył: 21.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 339 Pomógł: 12 Dołączył: 22.11.2008 Ostrzeżenie: (20%) ![]() ![]() |
Dzięki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Zaraz coś naskrobię to dam na forum, żebyście powiedzieli co jest źle (IMG:http://forum.php.pl/style_emoticons/default/haha.gif)
napotkałem na dylemat: chcę zarejestrować sesję ale w maualu jest napisane, że:
I teraz czego mam użyć (IMG:http://forum.php.pl/style_emoticons/default/haha.gif) ?? Znaczy $_SESSION['zalogowany']; czy session_register("zalogowany"); (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
użyj poprostu sesji (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Rozpoczecie sesji musi być na samym początku kodu. Nie może być przed tym nawet spacji. Potem dodajesz sobie do tablicy $_SESSION odpowiednie dane jakie chcesz i działasz dalej. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 339 Pomógł: 12 Dołączył: 22.11.2008 Ostrzeżenie: (20%) ![]() ![]() |
Teraz proszę o ocenę tego systemu. Chodzi mi o bezpieczeństwo (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
http://strarus.cba.pl/testy/login.php Jeśli coś jest źle, to proszę także napisać co muszę zrobić aby to naprawić. aha: login: test hasło: pass Ten post edytował Strarus 6.01.2009, 18:22:55 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
Jak na 1 rzut okiem jest ok. Daj kod to zobaczymy czy w kodzie nie ma jakiś luk.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 339 Pomógł: 12 Dołączył: 22.11.2008 Ostrzeżenie: (20%) ![]() ![]() |
login.php
main.php
logout.php
I jeszcze plik db_connect.inc.php ale jego chyba nie trzeba (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
Proponuje Ci zrobić takie zapytanie
To zapytanie sprawdza czy w bazie jest rekord gdzie login = login a haslo = haslo i zwraca rekord. Możesz sobie zabezpieczyć dodatkowo przed atakiem dodając:
i przy zmianie nazwy zmiennych posta dodać funkcję jeszcze addslashes(); Jak na mój gust logowanie będzie dosyć bezpieczne i funkcjonalne. Ja tak robię zawsze i działa wszystko (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 339 Pomógł: 12 Dołączył: 22.11.2008 Ostrzeżenie: (20%) ![]() ![]() |
Dzięki wielkie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) A na jaki typ ataku był podatny mój skrypt? W jaki sposób można było przeprowadzić atak? Sprawdzałem tylko
Kod 'or 1=1 i % ale nie działały.
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
na SQL inject. % działają jeżeli w zapytaniu mamy LIKE. Jest to stosowane do wyszukiwarek. A i jeszcze jedno. Koduj sobie hasła w md5(); Jest mniejsze ryzyko włamania się na czyjeś konto.
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 339 Pomógł: 12 Dołączył: 22.11.2008 Ostrzeżenie: (20%) ![]() ![]() |
Nadal nie działa (IMG:http://forum.php.pl/style_emoticons/default/haha.gif)
. Jak wpisuje poprawne dane to i tak pokazuje złe hasło...I jeszcze pytanie: czy mogę dać w sesji np. $_SESSION["zalogowany"] = $row['login']; aby móc potem weryfikować z sesji nazwę użytkownika przy zmianie hasła? Ten post edytował Strarus 6.01.2009, 19:39:41 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
Usuń spację w `login` = '".$login."'
Daj pod $row = mysql_fetch_row($dane); print_r($row); i daj to co ci wyprintuje Możesz tak zrobić, ale lepiej będzie jak zrobisz $_SESSION['login'] = $login; oprócz $_SESSION['zalogowany'] = true; |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 339 Pomógł: 12 Dołączył: 22.11.2008 Ostrzeżenie: (20%) ![]() ![]() |
daje mi wtedy
Kod Array ( [0] => test [1] => pass ) Złe hasło! ... I nadal nie działa... może powrócę do starej wersji?? (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
wyprintuj taki sposobem tablice $_POST i porównaj dane.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 04:49 |