eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.wwwAjax - kwestie bezpieczeństwaRe: Ajax - kwestie bezpieczeństwa
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!plix.pl!newsfeed2.plix.pl!news.supermed
    ia.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
    From: Marek <p...@s...com>
    Newsgroups: pl.comp.www
    Subject: Re: Ajax - kwestie bezpieczeństwa
    Date: Wed, 19 Dec 2012 12:18:50 +0100
    Organization: ATMAN - ATM S.A.
    Lines: 33
    Message-ID: <kas7r3$32s$1@node2.news.atman.pl>
    References: <kancal$fhc$1@node2.news.atman.pl> <s...@t...dom.local>
    <kaqq5q$okr$1@node2.news.atman.pl> <kaqq8c$okr$2@node2.news.atman.pl>
    <s...@t...dom.local>
    NNTP-Posting-Host: 89-69-209-185.dynamic.chello.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: node2.news.atman.pl 1355915939 3164 89.69.209.185 (19 Dec 2012 11:18:59 GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Wed, 19 Dec 2012 11:18:59 +0000 (UTC)
    User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:17.0) Gecko/17.0 Thunderbird/17.0
    In-Reply-To: <s...@t...dom.local>
    Xref: news-archive.icm.edu.pl pl.comp.www:401681
    [ ukryj nagłówki ]

    W dniu 2012-12-18 23:48, Tomek Kańka pisze:

    > Jedną z zasad pisania bezpiecznych serwisów webowych jest "nie ufaj temu
    > co przychodzi z przeglądarki".

    Stąd mój post. Dlatego właśnie zastanawiałem się jak to w przypadku
    Ajaxa działającego w sposób jawny po stronie przeglądarki zrealizować.

    > Czyli jeśli przychodzi request "pokaż
    > rekord id=101", to sprawdzasz, czy ten kto wysłał to zapytanie ma prawo
    > do rekordu 101, choćby z logiki aplikacji wynikało, że odpowiedni link
    > wyświetla się tylko uprawnionym uzytkownikom. Na każdym kroku
    > zakłądasz, że ktos mógł podmenić nr sesji, zawartośc cookie, parametry
    > itp.
    >

    Tak, właśnie to wszystko chcę uwzględniać + Ajax, który komplikuje
    jeszcze bardziej. W omawianym hipotetycznym przykładzie muszę do Ajaxa
    przesłać 2 parametry: ID grupy transakcji i ID konkretnej transakcji po
    to aby potrafił on zapytać się systemu o dane (załóżmy, że oba te ID są
    niezbędne). Tymczasem to samo rozwiązanie bez Ajaxa, w samym PHP, wymaga
    ujawnienia wyłącznie ID transakcji gdyż w sesji mogę pamiętać ID grupy
    transakcji. No i w tym momencie jeśli ktoś podmieniłby ID transakcji, to
    PHP stwierdzi, że w ramach danej grupy nie ma takiej transakcji.
    Tymczasem w Ajaxie ktoś może podmienić oba te ID i trudno jest
    weryfikować czy autoryzować takie zapytanie czy też nie.

    A tak na marginesie: rozwiązałem w PHP (ale nie w Ajaxie) kwestie
    bezpieczeństwa w taki sposób, że generuję do każdego formularza losowy,
    zmienny za każdym razem, ID transakcji. Jeśli ktoś podmieni ID sesji, to
    numer transakcji nie będzie się pokrywał z innym - wygenerowanym podczas
    innej sesji. Prosty zabieg, który ucina problemy weryfikacji operacji.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: