![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 1 Dołączył: 28.09.2007 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
Temat już kiedyś poruszałem, tym razem problem jest bardziej złożony. Mam aplikację internetową z logowaniem usera. Bardzo dobrze zabezpieczoną od strony backendu, uprawnienia usera siedzą w sesji. Dopóki backend i frontend były częścią tego samego serwisu (ta sama domena), sprawa była prosta - serwer zwracał dane tylko na żądania z tej samej sesji. Napisałem jednak usługę danych, która miała być wspólna dla kilku serwisów. Zwraca JSON lub XML, w zależności od żądania klienta. Problem z tym, że nie chcę zwracać danych każdemu kto zapyta, a tylko konkretnym aplikacjom i tylko wtedy, kiedy user jest zalogowany.
Obecnie mam to rozwiązane tak - PHP wysyła zapytanie z uwierzytelnieniem do serwera usługi danych, następnie zwraca pobrane dane AJAX-owi wewnątrz domeny aplikacji klienckiej. Działa i jest bezpieczne, tylko wydaje mi się to trochę na około. Chciałbym pominąć jakoś ten krok pobierania danych przez PHP aplikacji klienckiej, zamiast tego pobrać dane bezpośrednio JS z serwera usługi danych. Tylko problem uwierzytelnienia! Nie mogę hasła umieścić w kodzie przecież. To musi być proste... Jednym z pomysłów jest, żeby skrypt pobierał dane do uwierzytelnienia z serwera klienckiego (w sesji) następnie wysyłał tak uzyskane uwierzytelnienie do usługi danych. Tak czy inaczej mam 2 zapytania. Chociaż w sumie to pierwsze można wywołać raz, dane mogą siedzieć w pamięci do czasu przeładowania strony (co w AJAX-ie powinno być rzadkością). Dobra, ja tu kombinuję jak koń pod górę, a może jest jakiś standardowy sposób uwierzytelniania dla zapytań do innej domeny? W szczególności interesują mnie rozwiązania z jQuery. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 1 Dołączył: 28.09.2007 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
Gdyby klient wybulił z 10 - 20k za ten pomysł, pewnie bym tak zrobił. Problem w tym, że aplikacja (wielka krowa) już jest, w dodatku działa. Jedyne co chcę uzyskać to zmniejszyć obciążenie serwera i przyśpieszyć działanie. Aktualnie serwer aplikacji działa jako proxy dla usługi danych. W sposób niedostępny userowi przesyła uwierzytelnienie do usługi, odbiera dane i wysyła dane do frontendu.
Przy okazji wydania jQuery 1.51 i jego nowego modułu AJAXa odświeżyłem sobie wiedzę (i zacząłem odpalać $.ajax "z ręki", zamiast via framework, co było nudne i zostawiało za małą swobodę). Moją uwagę przykuła technika jsonp - z pomocą której można zasysać dane z innych domen, co aż się prosi do wykorzystania z moją usługą danych. Sęk w tym, że chyba brakuje tam skutecznego mechanizmu uwierzytelniania. Chyba że jest, a ja o nim nie wiem (IMG:style_emoticons/default/smile.gif) Póki co, chyba jednak zostanę przy tym proxy - generuje minimalny narzut, może to po prostu moje paranoiczne nawyki z programowania C64 wpuściły mnie w kanał tego tematu (IMG:style_emoticons/default/smile.gif) Może narzut proksiaka jest faktycznie pomijalnie mały. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 22:10 |