lukasz91
9.03.2016, 15:57:55
Mam API w PHP, które za pomocą JSONP (zapytania ajax) zwraca określone dane innej domenie. W jaki sposób mogę zabezpieczyć API, tak by zapytania mogły być wykonywane tylko z określonego miejsca (domeny)? Tak żeby nikt inny nie mógł wyciągnąć danych.
marcio
9.03.2016, 18:19:09
oauth, api key rozwiazan jest wiele
lukasz91
9.03.2016, 18:59:30
API key chyba zbytnio nie zda egzaminu. W kodzie JS musiałby być podany jawny klucz. Dla średnio ogarniętego "hakera" nie byłoby by problemu podejrzeć klucz w kodzie... Myślałem też o Oauth. Poda ktoś linka, gdzie będzie pokazana w przejrzysty sposób implementacja tego?
Chyba, że da się w jakiś sposób powiązać klucz-domena?
kpt_lucek
9.03.2016, 19:03:43
+ CORS
lukasz91
9.03.2016, 19:18:44
Cytat(kpt_lucek @ 9.03.2016, 19:03:43 )

+ CORS
Jak dobrze rozumiem sugerujesz:
1) Podawać api key
2) Do tego, za pomocą CORS, ograniczyć możliwość odbierania zapytań tylko z listy dozwolonych domen?
Jest to jakieś rozwiązanie. Pytanie tylko czy nie da się w prosty sposób (np. za pomocą curl) podmienić nagłówków i "oszukać" takie zabezpieczenie?
Damonsson
9.03.2016, 20:30:26
Albo masz normalne API i to serwer wysyła zapytania, więc nikt tego nie widzi, zastosowanie ma API Key.
Albo masz jakieś JSONP i wtedy działa CORS dla takich domen jakie ustalisz.
Wszystko jest stosowane od 100 lat, w 99,9% bezpieczne i nic nie musisz wydziwiać
lukasz91
9.03.2016, 20:46:59
Czyli w moim przypadku trzeba użyć CORS. Dzięki
redeemer
9.03.2016, 20:53:55
CORS to mechanizm zaimplementowany w przeglądarce (który zresztą można wyłączyć np. w chromie przez --disable-web-security), jak to ma niby zabezpieczyć przed "ręcznym" requestem"?
lukasz91
10.03.2016, 15:15:51
Cytat(redeemer @ 9.03.2016, 20:53:55 )

CORS to mechanizm zaimplementowany w przeglądarce (który zresztą można wyłączyć np. w chromie przez --disable-web-security), jak to ma niby zabezpieczyć przed "ręcznym" requestem"?
W takim razie co proponujesz?
Crozin
10.03.2016, 15:18:03
CORS służy zabezpieczeniu użytkownika/przeglądarki, nie API. To co zapewne będzie Cię interesować to np. OpenID Connect z oAuth2.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.