![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 375 Pomógł: 20 Dołączył: 28.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
Istnieją 2 metody zabezpieczeń przed CSRF, które chronią tylko częściowo:
Skuteczniejsze metody:
Jakie jeszcze znacie skuteczne sposoby zabezpieczeń? Chcę zastosować takie zabezpieczenia, aby w jak najmniejszym stopniu utrudnić korzystanie z serwisu. Rozważmy jednorazowy klucz. Standardowa implementacja wygląda tak:
Osoba pisze jednocześnie 2 posty. Kiedy wyśle drugi, zobaczy komunikat "Wyślij formularz ponownie". Przyczyna: w sesji zapisujemy klucz pod identyczną nazwą. Innym razem pisze długi post. Znowu do samo. Przyczyna: Sesja wygasa po 20 minutach (można zwiększyć, tylko niezalecane). Rozważmy ponowne logowanie przy wejściu do panelu admina. Redaktor pisze długi artykuł. Zapisuje. Niestety, sesja wygasła. Musi zalogować się ponownie. Artykuł znika. Zamiast sesji można wykorzystać ciasteczka. Dopóki nie zamknie przeglądarki, nie zostanie wylogowany. Jak nie popełnić błędu? Wystarczy zapisać md5(hasło + coś tam)? Jak projektować zabezpieczenia, aby nie utrudniać życia użytkownikom? Ten post edytował WebCM 18.03.2012, 16:41:44 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 4 Dołączył: 22.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
Cytat A słabość MD5 polega na tym, że udało się opracować efektywną metodę dobierania danych wejściowych dla danych danych wyjściowych - popularność nie ma tu wiele do rzeczy. Cytat To czym się kierowali ludzie nie jest teraz istotne, istotne jest to że opracowali algorytm łamiący podstawową właściowość MD5 - jednokierunkowość. Z SHA1 jest zresztą dosyć podobnie. Kierunek myślenia ludzi jest BARDZO istotny i wchodzą tu aspekty z socjotechniki...tak samo popularność ma bardzo wiele do rzeczy i nie będę dyskutować na ten temat robiąc oftop. Cytat Byłbym jednak bardzo wdzięczny za podanie przykładu, bo wg tego co piszesz każdy portal byłby wstanie włamać się na różne moje konta (pocztę, bank, fora itd.) o ile mają odpowiednio złą (tj. jaką?) konstrukcję.
Nie każdy portal i nie w każdym miejscu bo zależy to od konstrukcji "dojścia" do formularza. Nie podam Ci konkretnego przykładu bo jest to długi temat oparty na metodzie wielu prób i testów. Odnośnie banków, to zauważ, że w większości banków stosują kody jednorazowe lub tokeny przysyłane listem do domu - i nie robią tego tylko po to, aby wydać w kosmos kilkanaście tysięcy/mc. Obrona przed atakiem CSRF jest trudna, dobrą obroną jest stosowanie rozszerzonych i dokładnych ifów + losowy token dla sesji wykorzystywany dla każdego formularza (jeden token w zupełności wystarczy). edit do posta poniżej: Kto powiedział, że serwer musi się podszyć pod sesje użytkownika? dalsza dyskusja nie ma sensu. Po hackuj trochę w celach edukacyjnych to zrozumiesz nieco inny sens pisania kodu niż tylko programistyczny. Ten post edytował fr33d0m 25.03.2012, 18:24:19 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 03:02 |