![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 0 Dołączył: 4.02.2014 Ostrzeżenie: (20%) ![]() ![]() |
Cześć, chcę zapytać, co myślicie o zabezpieczeniu akcji w cmsie w taki sposób:
Cytat Session riding (inne nazwy to: cross-site request forgery ? CSRF, one click attack, session hijacking) Celem ataku session riding jest wykonanie złośliwego kodu z uprawnieniami zalogowanego użytkownika. Może to doprowadzić do kradzieży danych użytkownika, zamówienie przez niego jakiegoś produktu (w przypadku sklepu), lub w przypadku wykonania kodu przez administratora ?dostęp? do panelu administratora. Zabezpieczenie przed CSRF może wydawać się trudne lecz istnieje kilka sposobów by tego dokonać. Dwa najciekawsze opierają się na tokenach, czyli losowo wygenerowanych ciągach znaków. Zasada działania pierwszego sposobu opiera się na umieszczeniu dodatkowe pola w każdym znaczącym formularzu. W polu tym będzie znajdował się wygenerowany token, który po wysłaniu formularza będzie sprawdzany z tokenem zapisanym np. w sesji. Drugi sposób jest ?bardziej skomplikowany?, a wraz z tym lepszy. Polega on na stworzeniu ?tablicy routingu?. Mianowicie chodzi o tabelkę w bazie danych która będzie zawierała w sobie zestawienie tokenów oraz prawdziwych adresów. Token powinien być generowany inny dla każdego użytkownika. Dzięki temu napastnik nie będzie w stanie wywołać akcji z uprawnieniami zalogowanego użytkownika. http://www.sklep.pl/?producent=jakis&p...y&akcja=kup http://www.sklep.pl/?token=djJa76ashHSB Opis: Zmiana wyglądów adresów po użyciu ?tablicy routingu? źródło: www.beldzio.com/bezpieczenstwo-mechanizmu-sesji Czy można jakoś inaczej rozwiązać sprawę tokenów, nie chcę korzystać z captcha. Głównie chodzi o usuwanie zawartości strony, ale w sumie można by to zastosować chyba wszędzie. Ten post edytował Omenomn 6.06.2015, 15:08:29 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 0 Dołączył: 4.02.2014 Ostrzeżenie: (20%) ![]() ![]() |
ta tablica routingu tez mi się wydaje teraz średnim pomysłem, zrobiłem coś takiego, że po przeładowaniu strony przy każdym adresie generowany jest token, który po kliknięciu w link jest sprawdzany i jeśli jest zgodny z tym w sesji wtedy akcja wykonuje się, a token jest generowany na nowo.
Rozwiązałem bez inputów, a w linkach, ponieważ do usunięcia treści sądzę, że prostszym rozwiązaniem jest odnośnik niż formularz. Formularze powinno się używać tam gdzie, rzeczywiście są wymagane, takie moje zdanie. Przechwycenie tokena raczej na niewiele się zda, bo i tak można go użyć tylko raz. Dzięki za pomoc. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 18:22 |