Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zabezpieczenie API
Forum PHP.pl > Forum > PHP
lukasz91
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
oauth, api key rozwiazan jest wiele
lukasz91
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
+ CORS
lukasz91
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
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ć smile.gif
lukasz91
Czyli w moim przypadku trzeba użyć CORS. Dzięki smile.gif
redeemer
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
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
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.