eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.wwwZabezpieczenie danych w URL-u
Ilość wypowiedzi w tym wątku: 9

  • 1. Data: 2012-12-05 23:10:32
    Temat: Zabezpieczenie danych w URL-u
    Od: Cezary Tomczyk <c...@g...com>

    Powiedzmy, że jest taki oto request:

    https://foo.example.com/?param1=foo&login=test&passw
    ord=mojehaslo&inne=parametry

    Niestety, ale ów request musi być cross-domenowy i używam do tego JSONP.
    O ile samo połączenie SSL-owe to już jest lepiej, o tyle problem jest, że:

    - idzie to GET-em, bo <script> z JSONP
    - nie może iść POST-em, bo musiałbym wykonać cross-domenowe XHR, ale
    serwer na to nie pozwala (poza sytuacją, kiedy mógłbym ustawić do tego
    odpowiednio nagłówek Access-Control-Allow-Credentials w odpowiedzi z
    serwera)

    POST-em by było najlepiej, bo wszystkie parametry byłyby zakodowane w
    nagłówku, ale na razie POST być nie może.

    Co mnie martwi mimo SSL-a?

    - URL zostaje zapisany w logach serwera, a także może być po drodze w proxy
    - Zostaje ślad w historii, która jest w przeglądarce; a także możliwe,
    że niektóre pluginy gromadzą sobie takie dane
    - URL może być wysłany do Google Analytics i tym podobnych serwisów

    Jakieś pomysły jak zabezpieczyć parametry w URL-u gdzie request idzie po
    GET-cie mimo SSL-a?

    --
    Cezary Tomczyk
    http://www.ctomczyk.pl/


  • 2. Data: 2012-12-06 12:53:25
    Temat: Re: Zabezpieczenie danych w URL-u
    Od: HARY <h...@e...invalid>

    On Wed, 05 Dec 2012 23:10:32 +0100, Cezary Tomczyk wrote:
    > Powiedzmy, że jest taki oto request:
    >
    > https://foo.example.com/?param1=foo&login=test&passw
    ord=mojehaslo&inne=parametry
    > [...]
    > Jakieś pomysły jak zabezpieczyć parametry w URL-u gdzie request idzie po
    > GET-cie mimo SSL-a?

    Argumenty potraktowałbym jako ciąg znaków, użył funkcji szyfrującej
    i wysłał jako jeden argument:

    ?all_params=hash

    HARY

    --


  • 3. Data: 2012-12-06 20:43:45
    Temat: Re: Zabezpieczenie danych w URL-u
    Od: Cezary Tomczyk <c...@g...com>

    W dniu 2012-12-06 12:53, HARY pisze:
    > On Wed, 05 Dec 2012 23:10:32 +0100, Cezary Tomczyk wrote:
    >> Powiedzmy, że jest taki oto request:
    >>
    >> https://foo.example.com/?param1=foo&login=test&passw
    ord=mojehaslo&inne=parametry
    >> [...]
    >> Jakieś pomysły jak zabezpieczyć parametry w URL-u gdzie request idzie po
    >> GET-cie mimo SSL-a?
    >
    > Argumenty potraktowałbym jako ciąg znaków, użył funkcji szyfrującej
    > i wysłał jako jeden argument:
    >
    > ?all_params=hash

    No ale algorytm jest publiczny i siedzi w JavaScripcie. Więc znając
    algorytm i URL można go łatwo odkodować.

    Ja myślałem o tym, by użyć publicznego klucza z serwera, zakodować,
    wysłać i na serwerze za pomocą klucza prywatnego odkodować. Ale to
    rozwiązanie na razie nie przejdzie.

    --
    Cezary Tomczyk
    http://www.ctomczyk.pl/


  • 4. Data: 2012-12-07 08:35:49
    Temat: Re: Zabezpieczenie danych w URL-u
    Od: HARY <h...@e...invalid>

    On Thu, 06 Dec 2012 20:43:45 +0100, Cezary Tomczyk wrote:
    > W dniu 2012-12-06 12:53, HARY pisze:
    >> On Wed, 05 Dec 2012 23:10:32 +0100, Cezary Tomczyk wrote:
    >>> Powiedzmy, że jest taki oto request:
    > No ale algorytm jest publiczny i siedzi w JavaScripcie. Więc znając
    > algorytm i URL można go łatwo odkodować.

    Odniosłem się do tego:

    =============
    Co mnie martwi mimo SSL-a?

    - URL zostaje zapisany w logach serwera, a także może być po drodze w
    proxy
    - Zostaje ślad w historii, która jest w przeglądarce; a także możliwe,
    że niektóre pluginy gromadzą sobie takie dane
    - URL może być wysłany do Google Analytics i tym podobnych serwisów
    =============

    I uznałem, że Ci wystarczy, żeby argumenty były widoczne "na żywca" w
    różnych miejscach, gdzie mogą się dostać.

    > Ja myślałem o tym, by użyć publicznego klucza z serwera, zakodować,
    > wysłać i na serwerze za pomocą klucza prywatnego odkodować. Ale to
    > rozwiązanie na razie nie przejdzie.

    1. Logowanie z formularza i POST. Zwykły HTML wystarczy.

    2. Na serwerze szyfrowanie jednokierunkowe i przekierowanie GET (do
    adresu URL/?arg=hash).

    3. W dalszych działaniach JS nie musi nic wiedzieć o szyfrowaniu, ma
    tylko "podać dalej" otrzymany hash, a serwer za każdym razem sprawdzić,
    czy hash jest poprawny.

    Chyba że nie kumam, do czego zmierzasz.

    HARY


    --
    Newton's Fourth Law: Every action has an equal and opposite satisfaction.


  • 5. Data: 2012-12-09 19:50:42
    Temat: Re: Zabezpieczenie danych w URL-u
    Od: Cezary Tomczyk <c...@g...com>

    W dniu 2012-12-07 08:35, HARY pisze:
    > On Thu, 06 Dec 2012 20:43:45 +0100, Cezary Tomczyk wrote:
    [...]
    >> Ja myślałem o tym, by użyć publicznego klucza z serwera, zakodować,
    >> wysłać i na serwerze za pomocą klucza prywatnego odkodować. Ale to
    >> rozwiązanie na razie nie przejdzie.
    >
    > 1. Logowanie z formularza i POST. Zwykły HTML wystarczy.

    Nie mogę użyć <form>-a, bo serwer nie zwróci potrzebnych mi danych w
    postaci obiektu JSON z danymi (np. z informacją czy użytkownik jest
    autoryzowany czy nie).

    Użytkownik wpisuje login i hasło a ja go chcę autoryzować (w moim
    przypadku poprzez wysłanie zapytania z użyciem JSONP; jestem w domenie
    example.com a muszę odwołać się do innej domeny, niż example.com) celem
    autoryzacji użytkownika).

    > 2. Na serwerze szyfrowanie jednokierunkowe i przekierowanie GET (do
    > adresu URL/?arg=hash).

    To przypomina mi rozwiązanie z użyciem Proxy :-)

    > 3. W dalszych działaniach JS nie musi nic wiedzieć o szyfrowaniu, ma
    > tylko "podać dalej" otrzymany hash, a serwer za każdym razem sprawdzić,
    > czy hash jest poprawny.
    >
    > Chyba że nie kumam, do czego zmierzasz.

    O ile dobrze zrozumiałem, to mogłoby to wyglądać tak:

    1. <form> type POST -> serwer Proxy.
    2. Proxy przesyła dalej dane do docelowego serwera.

    Pytanie tylko jak odebrać odpowiedź od serwera docelowego?

    --
    Cezary Tomczyk
    http://www.ctomczyk.pl/


  • 6. Data: 2012-12-09 19:56:00
    Temat: Re: Zabezpieczenie danych w URL-u
    Od: Cezary Tomczyk <c...@g...com>

    W dniu 2012-12-09 19:50, Cezary Tomczyk pisze:
    > W dniu 2012-12-07 08:35, HARY pisze:
    >> On Thu, 06 Dec 2012 20:43:45 +0100, Cezary Tomczyk wrote:
    > [...]
    >>> Ja myślałem o tym, by użyć publicznego klucza z serwera, zakodować,
    >>> wysłać i na serwerze za pomocą klucza prywatnego odkodować. Ale to
    >>> rozwiązanie na razie nie przejdzie.
    >>
    >> 1. Logowanie z formularza i POST. Zwykły HTML wystarczy.
    >
    > Nie mogę użyć <form>-a, bo serwer nie zwróci potrzebnych mi danych w
    > postaci obiektu JSON z danymi (np. z informacją czy użytkownik jest
    > autoryzowany czy nie).

    Dla ścisłości, bo wyraziłem się niejasno: serwer może mi wysłać dane,
    ale <form> nie ma czegoś takiego jak callback :-). Skądinąd XHR ma, ale
    nie mogę dokonać komunikacji cross-domenowej. Wiem, nowe przeglądarki
    już to wspierają, ale jest jeszcze taki warunek, by był wysłany z
    serwera odpowiedni nagłówek. No i inna sprawa, że nadal muszę wspierać
    IE7 :-( (inaczej: przeglądarki, co nie wspierają CORS-a w XHR-ze).

    --
    Cezary Tomczyk
    http://www.ctomczyk.pl/


  • 7. Data: 2012-12-09 20:46:23
    Temat: Re: Zabezpieczenie danych w URL-u
    Od: HARY <h...@e...invalid>

    On Sun, 09 Dec 2012 19:50:42 +0100, Cezary Tomczyk wrote:
    > W dniu 2012-12-07 08:35, HARY pisze:
    >> 2. Na serwerze szyfrowanie jednokierunkowe i przekierowanie GET (do
    >> adresu URL/?arg=hash).
    > To przypomina mi rozwiązanie z użyciem Proxy :-)

    To klasyka poprawnie zrealizowanego POST. Tzw. Get-after-post.

    > 1. <form> type POST -> serwer Proxy.
    > 2. Proxy przesyła dalej dane do docelowego serwera.
    > Pytanie tylko jak odebrać odpowiedź od serwera docelowego?

    Tak jak pierwotny użytkownik, gdyby się do niego odwołał bezpośrednio.

    Pewnie jakiś szczegół mi umyka...

    HARY

    --
    Własny styl to przedzieranie się przez gąszcz własnej banalności.


  • 8. Data: 2012-12-09 22:06:18
    Temat: Re: Zabezpieczenie danych w URL-u
    Od: Cezary Tomczyk <c...@g...com>

    W dniu 2012-12-09 20:46, HARY pisze:
    > On Sun, 09 Dec 2012 19:50:42 +0100, Cezary Tomczyk wrote:
    >> W dniu 2012-12-07 08:35, HARY pisze:
    >>> 2. Na serwerze szyfrowanie jednokierunkowe i przekierowanie GET (do
    >>> adresu URL/?arg=hash).
    >> To przypomina mi rozwiązanie z użyciem Proxy :-)
    >
    > To klasyka poprawnie zrealizowanego POST. Tzw. Get-after-post.
    >> 1. <form> type POST -> serwer Proxy.
    >> 2. Proxy przesyła dalej dane do docelowego serwera.
    >> Pytanie tylko jak odebrać odpowiedź od serwera docelowego?
    >
    > Tak jak pierwotny użytkownik, gdyby się do niego odwołał bezpośrednio.
    >
    > Pewnie jakiś szczegół mi umyka...

    Chyba tak. Przekierowanie Get-after-post niczego specjalnie mi nie
    rozwiązuje a jeszcze bardziej komplikuje. Po stronie serwera robię
    przekierowanie, ale:

    1. Ewentualnie dane, jakie chciałbym przesłać do przeglądarki z powrotem
    w ramach odpowiedzi z serwera, są w URL-u, bo to GET.
    2. Rozumiem, że wówczas callback będzie, powiedzmy, kiedy strona się
    załaduje po przekierowaniu a ja sprawdzę czy w URL-u są odpowiednie dane
    z serwera.

    To, co ja chcę zrobić, to wysłanie dane nie GET-em, ale POST-em i nie
    mogę użyć XHR-a do tego w przeglądarkach, które nie wspierają CORS-u.
    Robię to za pomocą JSNOP, ale jest z tym trochę problemów odnośnie
    bezpieczeństwa, a których to wcześniej pisałem.

    Mi nie chodzi o zabezpieczenie się przed wielokrotnym submitem, ale o
    przesłanie danych POST-em po SSL-u lub użycie czegoś, co nie będzie
    GET-em. Tak bym to ujął.

    --
    Cezary Tomczyk
    http://www.ctomczyk.pl/


  • 9. Data: 2012-12-09 22:21:18
    Temat: Re: Zabezpieczenie danych w URL-u
    Od: Cezary Tomczyk <c...@g...com>

    W dniu 2012-12-09 20:46, HARY pisze:
    > On Sun, 09 Dec 2012 19:50:42 +0100, Cezary Tomczyk wrote:
    >> W dniu 2012-12-07 08:35, HARY pisze:
    >>> 2. Na serwerze szyfrowanie jednokierunkowe i przekierowanie GET (do
    >>> adresu URL/?arg=hash).
    >> To przypomina mi rozwiązanie z użyciem Proxy :-)
    >
    > To klasyka poprawnie zrealizowanego POST. Tzw. Get-after-post.
    >
    >> 1. <form> type POST -> serwer Proxy.
    >> 2. Proxy przesyła dalej dane do docelowego serwera.
    >> Pytanie tylko jak odebrać odpowiedź od serwera docelowego?
    >
    > Tak jak pierwotny użytkownik, gdyby się do niego odwołał bezpośrednio.

    Sądzę, że taki wariant powinien być dobry:

    1. Tworzę iframe a w nim wysyłam XHR-a z POST-em.
    2. Serwera odpowiada a ja odbieram dane i wywołuję funkcję z host-a
    gdzie parametrem będą dane z XHR-a.

    Hm, nie wygląda mi to tak źle.

    --
    Cezary Tomczyk
    http://www.ctomczyk.pl/

strony : [ 1 ]


Szukaj w grupach

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: