Pokaż wyniki od 1 do 9 z 9
Like Tree3Likes
  • 1 Post By Galathilion
  • 1 Post By karer
  • 1 Post By Aravorn

Wątek: Zabezpieczenia, uwierzytelnianie osoby inne niż session id

  1. #1
    Aktywny
    Dołączył
    Jul 2008
    Posty
    866

    Domyślnie Zabezpieczenia, uwierzytelnianie osoby inne niż session id

    Sesja swoją drogą, ale w niektórych przypadkach to jest za mało.
    Tutaj chcę prosić o opinię rozwiązania, być może to jest oczywiste, być może nie, jednak możliwe, że przeoczyłem jakieś oczywiste rozwiązania.

    Załóżmy, że mam link, który służy do usuwania wszystkich przedmiotów z ekwipunku.

    Kod:
    ekwipunek.php?akcja=wyrzuc
    A teraz ktoś na forum da taki link, ktoś wejdzie i to już strata wielu przedmiotów.

    Oczywiście można dodać id przedmiotów, co daje niesamowitą skuteczność, ale też nie całkowitą.

    Kod:
    ekwipunek.php?akcja=wyrzuc&id=2
    Obecnie zrobiłem tak, że przy logowaniu generowany jest id oraz hash i jest zapisywany w sesji. Stąd mamy coś w stylu

    Kod php:
    $_SESSION['id'] = 2;
    $_SESSION['hash'] = '12df3e'
    define('LINK_HASHED, 'game.php?hash=' . $_SESSION['hash']); 
    I teraz to muszę dopisywać za każdym razem do linków:
    Kod:
    <a href="<? echo LINK_HASHED; ?>&strona=statystyki>Statystyki</a>
    Zawsze pracuję sam przy swoich projektach, więc trzymam się jakichś własnych reguł, schematów, a może są błędne.
    Pytam z ciekawości - czy takie rozwiązanie jest dobre, czy istnieje jakieś wygodniejsze, którego nie znam?

  2. #2
    Zarejestrowany
    Dołączył
    Mar 2008
    Posty
    251

    Domyślnie

    Hm, jedyne wygodniejsze rozwiązanie, jakie przychodzi mi do głowy, to dodawanie ajaxem informacji, podczas klikania w linki. Powiedzmy, że ajax dodawałby zhashowaną nazwę strony przed jej otworzeniem, a w każdym pliku miałbyś na początku if'a, który ostrzegałby użytkownika o otworzeniu linka z zewnątrz.
    Tylko, z drugiej strony, takie rozwiązanie byłoby bardziej niebezpieczne, no i wymagałoby przemodelowania linków.
    Drikam likes this.

  3. #3
    Aktywny
    Dołączył
    Jul 2008
    Posty
    866

    Domyślnie

    Na pewno jest to jakiś sposób.. Podoba mi się myśl o ostrzeżeniu.. Do tej pory przekierowałem na stronę główną, ale takie coś jest na pewno miłym dodatkiem niż wykopywanie ludzi.

  4. #4
    Zasłużony Awatar karer
    Dołączył
    Apr 2008
    Posty
    2,554

    Domyślnie

    W branzy tworzenia stron uzywamy czegos takieog jak POST. W pelni zabezpiecza skrypt przed tego typu problemem.
    Drikam likes this.

  5. #5
    Aktywny
    Dołączył
    Jul 2008
    Posty
    866

    Domyślnie

    W sumie dość oczywisty sposób i masz rację.

    Takie rozwiązanie lub podobne..

    Kod:
                <form action="game.php?mod=equipment&action=drop" method="post">
                    <input type="hidden" name="itemID" value ="23">
                    <a href="#" onclick="parentNode.submit();">Wyrzuć przedmiot</a>
                </form>
    Ostatnio edytowane przez Drikam ; 07-06-2013 o 14:44

  6. #6
    Zasłużony Awatar karer
    Dołączył
    Apr 2008
    Posty
    2,554

    Domyślnie

    Po co laczyc te sposoby? Na pewno nie w takim celu jaki chcesz osiagnac. Zasada sie przyjela taka, ze linkiem nie wykonujemy akcji, a jedynie pzenosimy do konkretnego widoku. Akcje wykonujemy formularzami i metoda POST.

  7. #7
    Aktywny
    Dołączył
    Jul 2008
    Posty
    866

    Domyślnie

    Tak, masz rację. Zrobiłem sobie problem z niczego. : )

  8. #8
    Programista Awatar Aravorn
    Dołączył
    Apr 2011
    Posty
    343

    Domyślnie

    Jak napisał karer: na ataki CRSF przesłanie danych POSTem powinno wystarczyć ale.. no zależy jak to zbudujesz, bo teoretycznie może i nie wystarczyć.. dlatego też warto dodatkowo przesyłać jakąś krótką informację ukrytym polem, np. hash 3-4 znakowy dla danej sesji. To w pełni wyeliminuje problem.
    Drikam likes this.

  9. #9
    Programista
    Dołączył
    Sep 2007
    Posty
    622

    Domyślnie

    Wysyłanie formularzy za pomocą POST + dołączanie id generowanych podczas wyświetlania strony i ich zapamiętywanie w sesji. To jest najbezpieczniejsze rozwiązanie, aczkolwiek strasznie upierdliwe.
    http://orodlin.pl/ - Orodlin.pl Team Member
    http://blog.albitos.eu - Albi's Jogger - Z pamiętnika młodego programisty
    http://wsosnowski.pl - wizytówka

    Mam do wynajęcia miejsce na serwerze dedykowanym. Ktoś zainteresowany?

Informacje o wątku

Użytkownicy przeglądający ten wątek

Aktualnie 1 użytkownik(ów) przegląda ten wątek. (0 zarejestrowany(ch) oraz 1 gości)

Podobne wątki

  1. session problem
    Przez adif1 w dziale Kosz
    Odpowiedzi: 0
    Ostatni post / autor: 06-08-2010, 13:57
  2. Odpowiedzi: 20
    Ostatni post / autor: 22-03-2010, 15:17
  3. Session w JS?
    Przez Drikam w dziale JavaScript/AJAX
    Odpowiedzi: 15
    Ostatni post / autor: 05-02-2009, 19:08
  4. Menu inne dla graczy PRO i inne dla zwykłych
    Przez Dapi w dziale Pytania dotyczące silnika Xnova
    Odpowiedzi: 0
    Ostatni post / autor: 01-02-2009, 20:26
  5. Odpowiedzi: 15
    Ostatni post / autor: 05-08-2008, 22:02

Zakładki

Uprawnienia umieszczania postów

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •