![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 230 Pomógł: 3 Dołączył: 8.01.2008 Ostrzeżenie: (10%) ![]() ![]() |
Ostatnio zajrzałem w ciastka youtube.com - no i tam, przy ciastku automatycznego logowania, jest bardzo długi ciąg znaków, nie wydaje mi się żeby to był hash hasła. To jest chyba unikalny ciąg znaków, który zostaje przyporządkowany każdemu użytkownikowi podczas logowania? I używany jest właśnie do automatycznego logowania, dzięki czemu nie musimy wysyłać do ciastek hasha hasła? No i podczas logowania, szukany jest w bazie użytkownik o takim hashu?
Hm, a nie prościej po prostu przechowywać tam ID użytkownika? Czy jednak istnieje jakiś sposób podrobienia ciastek? -------------------- http://estender.net - profesjonalne strony i aplikacje internetowe (Ruby on Rails, Kohana PHP)
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 ![]() |
Nie wiem jak to jest na youtube, napisze CI jak ja to robię.
W ciastku trzymam identyfikator sesji, składający się z id użytkownika, kilku dodatkowych danych (ze względów bezpieczeństwa nie napiszę jakich) oraz klucza. Wszytko to leci przez md5 i przypisywane jest do użytkownika. Następnie sprawdzam, czy to co jest w ciastku pasuje do tego co jest w bazie. Dodatkowym zabezpieczeniem jest sprawdzenie co jakiś czas ciastka z wygenerowanym na żądanie hashem (nie pobranym z bazy, a stworzonym z aktualnych danych). edit Cytat Hm, a nie prościej po prostu przechowywać tam ID użytkownika? Czy jednak istnieje jakiś sposób podrobienia ciastek? Tak. Wystarczy pierwsza lepsza wtyczka do Firefoxa. Jeśli w ciastku będzie tylko id użytkownika, wówczas każdy będzie mógł sobie stworzyć ciastko z dowolnym id.
-------------------- I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
A nie wystarczyłoby przedłużenie ważności ciastka sesyjnego za pomocą session_set_cookie_params" title="Zobacz w manualu PHP" target="_manual?
-------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 ![]() |
A nie wystarczyłoby przedłużenie ważności ciastka sesyjnego za pomocą session_set_cookie_params" title="Zobacz w manualu PHP" target="_manual? Nie, ponieważ jeśli ktoś wykradnie ciastko, uzyska dostęp do konta użytkownika, a moje dodatkowe sprawdzenie, czy wszystkie parametry się zgadzają, pozwala uniknąć tego zagrożenia. Należy pamiętać, by poziom zabezpieczeń dostosować do klasy aplikacji. Jeśli jest to jakaś mała stronka z prostym panelem admina, to nie ma sensu kombinować z zabezpieczeniami. -------------------- I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Wiesz, nigdy nie polegam na samym SID. ;P
-------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 230 Pomógł: 3 Dołączył: 8.01.2008 Ostrzeżenie: (10%) ![]() ![]() |
Dodatkowym zabezpieczeniem jest sprawdzenie co jakiś czas ciastka z wygenerowanym na żądanie hashem (nie pobranym z bazy, a stworzonym z aktualnych danych). Ale po co? Skoro w bazie ma być zapisany ten hash tych pomieszanych danych, to one się nie zmienią, więc po co sprawdzać je z aktualnymi danymi? Chyba że ten hash ma się zmieniać - ale wtedy ktoś, kto ma włączone automatyczne logowanie, przy tym sprawdzaniu (jeżeli jakieś dane się zmieniły), nie zostanie zalogowany. -------------------- http://estender.net - profesjonalne strony i aplikacje internetowe (Ruby on Rails, Kohana PHP)
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 ![]() |
Ale po co? Skoro w bazie ma być zapisany ten hash tych pomieszanych danych, to one się nie zmienią, więc po co sprawdzać je z aktualnymi danymi? Chyba że ten hash ma się zmieniać - ale wtedy ktoś, kto ma włączone automatyczne logowanie, przy tym sprawdzaniu (jeżeli jakieś dane się zmieniły), nie zostanie zalogowany. No właśnie hash nie jest stały. Może ulec zmianie, w zależności od niektórych akcji użytkownika oraz innych czynników. A to, że ktoś nie zostanie automatycznie zalogowany, to jest to wybór mniejszego zła. Znacznie łatwiej wytłumaczyć klientowi dlaczego go nie zalogowało automatycznie, niż to, że ktoś obcy przegląda jego konto. -------------------- I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 690 Pomógł: 81 Dołączył: 6.04.2005 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
-------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 230 Pomógł: 3 Dołączył: 8.01.2008 Ostrzeżenie: (10%) ![]() ![]() |
Dzięki bełdzio za artykuł
![]() ![]() ![]() Dzięki za pomoc! -------------------- http://estender.net - profesjonalne strony i aplikacje internetowe (Ruby on Rails, Kohana PHP)
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 215 Pomógł: 0 Dołączył: 13.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Sorka za odświeżenie starego tematu, ale jestem na etapie auto logowania, i mam parę pytań odnośnie całego projektu.
Do tabeli: uzytkownicy dodałem nową kolumnę tak jak Apocalyptiq pisał (patrz post wyżej) char(32). Podczas rejestracji nowego użytkownika do serwisu, generuje mu unikalny hash: hash = md5(uniqid()); i wysyłam te informacje do bazy MySQL. Użytkownik od tego momentu posiada swój unikalny login, unikalny ID, oraz unikalny hash. Teraz kwestia sprawdzania danych, jak to ma wyglądać? Na początku dokumentu na pewno wpisać: session_start(); Ale co dalej? W jaki sposób wykonać sprawdzania czy użytkownik posiada już ciastko w tym serwisie? Proszę tylko o zarys całego kodu. |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Może tak $_COOKIE sprawdzisz?
-------------------- 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: 215 Pomógł: 0 Dołączył: 13.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Ogólnie na szybko skleiłem taki kodzik, wszystko działa, jednak mam pytanie odnośnie sprawdzania tego unikalnego HASHa.
W jaki sposób mam sprawdzić unikalny hash? Wiem że trzeba pobrać z bazy informacje, ale gdzie to wstawić w skrypcie? |
|
|
![]()
Post
#13
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
A jak sprawdzać, to już zadanie domowe. [; -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 15.08.2025 - 03:49 |