![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 1 Dołączył: 5.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
hej
o czym musze pamietac chcac napisac bardzo bezpieczny system logowania oparty o mysql ? na razie przychodzi mi do głowy: - md5 hasła - ograniczenie do 5 prób na godzine |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 673 Pomógł: 106 Dołączył: 31.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Zacznijmy od tego:
zamiast md5 -> sha1 Nie wstawiaj zmiennych z formularzy do zapytań w żadnym wypadku! (bez wcześniejszej obróbki) Określ, czego spodziewasz się np. ustalasz login to tylko literki a-zA-Z0-9 od 1 do 20 znaków i budujesz takie wyrażenie regularne. Używasz mysql_real_escape_string Najlepiej pisanie systemu logowania zacznij od napisania session handlera. -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 195 Pomógł: 18 Dołączył: 7.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
Jak będziesz robił automatyczne logowanie to zapisujesz cookie httponly z jakimś haszem np. login + id + jakaś sól. Dalej zapisujesz ten hash do bazy + nazwa przeglądarki + system i porównujesz wszystko.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 673 Pomógł: 106 Dołączył: 31.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Jak będziesz robił automatyczne logowanie to zapisujesz cookie httponly z jakimś haszem np. login + id + jakaś sól. Dalej zapisujesz ten hash do bazy + nazwa przeglądarki + system i porównujesz wszystko. nawiązując do tematu i cytatu: ta "(...)jakaś sól(...)" jest całkowicie zbędna. wystarczy zwykłe zapisanie hasła w md5 lub tego typu podobnym. po co zmyślać tam jakieś dziwadła, jeśli równie dobrze dana osoba może wejść na stronę, skorzystać z automatycznego logowania i tak wykraść dane? dlatego jest wybór automatycznego logowania, aby w miejscach publicznych tego unikać. nie bez powodu mówi się komputer osobisty/prywatny. (takie moje skromne zdanie ![]() -------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 1 Dołączył: 5.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
dzieki za pomoc to biore sie wlasnie za czytanie
![]() a i heh napisałem w zendzie ( bo na tym frameworku bede tworzyl logowanie) zrobilem prostą sesje która dodaje ++ przy kazdym wysłaniu formularza i dałem 10 mozliwosci na godzine potem odpalilem inna przegladarke klapa ![]() a potem po wpisaniu 10 niepoprawnych loginow dalem w firefoxie usun sesje i moglem znowu wpisywac:P |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
a potem po wpisaniu 10 niepoprawnych loginow dalem w firefoxie usun sesje i moglem znowu wpisywac:P Bo te dane o nieudanych logowaniach masz trzymać w bazie i "wiązać" po user_id -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 1 Dołączył: 5.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
a moze w ogole sobie odpuscic sesje?
i zrobic cos takiego: po wpisaniu do formularza danych/ walidacji: sprawdza czy istnieje user o wpisanym w formularzu loginie jesli tak i haslo jest poprawne to idziemy dalej a jesli nie istnieje to logowanie jeszce raz a jesli istnieje ale haslo jest niepoprawne to do kolumny powiedzmy user_login_counter dodaje sie 1 i wczesniej po sprawdzaniu czy user istnieje if jesli user_login_counter > 10 to die i cos tam jeszce zrobie zeby sie co godzine to zerowało |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli chcesz odpuścić sesje to nie wróżę nic dobrego - same kłopoty. Poczytaj do czego jest sesja.
-------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 1 Dołączył: 5.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
tzn moze sie zle wyrazilem chce zrezygnowac z sesji tylko i wylacznie przy sprawdzaniu ile razy ktos juz sie probowal zalogowac
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
tzn moze sie zle wyrazilem chce zrezygnowac z sesji tylko i wylacznie przy sprawdzaniu ile razy ktos juz sie probowal zalogowac Czemu? Przypisz użytkownika do sesji i tyle. ;d Jeżeli sesja danego użytkownika istnieje to działasz dalej, jeżeli wygasła to usuwasz z bazy i tworzysz nową. Ten post edytował fifi209 10.08.2009, 21:38:58 -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]() ![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 352 Pomógł: 53 Dołączył: 10.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Ikky możesz zrezygnować z sesji jak Ci się chce, ale po to jest, żeby jej używać.
Generalnie nie zapomnij o zastąpieniu apostrofów podwójnymi przed wsadzeniem do zapytania bo bez tego masz sql injection jak w banku |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Ikky możesz zrezygnować z sesji jak Ci się chce, ale po to jest, żeby jej używać. Jak wyobrażasz sobie dalsze akcje wykonywane po zalogowaniu? Generalnie nie zapomnij o zastąpieniu apostrofów podwójnymi przed wsadzeniem do zapytania bo bez tego masz sql injection jak w banku Generalnie czy będzie apostrof czy cudzysłów i tak można zamknąć poprzez sqli więc nie gadaj głupot. -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]() ![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 352 Pomógł: 53 Dołączył: 10.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Wyobrażam sobie działanie w oparciu o własne ClientScope.
A możesz mnie oświecić gdzie głupotę gadam? |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 365 Pomógł: 8 Dołączył: 16.12.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dodatkowo przy rejstracji wproować wysyłanie maila z linkiem i ewentualnie captcha.
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 1 Dołączył: 5.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
A możesz mnie oświecić gdzie głupotę gadam? Napisałem, czy apostrof czy cudzysłów i tak w trakcie ataku można go domknąć, że tak się wyrażę. Więc zmiana an cudzysłowy mu nic nie da bez użycia funkcji np. mysql_real_escape_string ja bym do tego regi dorzucił. -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 7.07.2025 - 00:33 |