Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zabezpieczenie API
lukasz91
post 9.03.2016, 15:57:55
Post #1





Grupa: Zarejestrowani
Postów: 149
Pomógł: 7
Dołączył: 6.01.2010
Skąd: Opole Lubelskie

Ostrzeżenie: (0%)
-----


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.


--------------------
Go to the top of the page
+Quote Post
marcio
post 9.03.2016, 18:19:09
Post #2





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


oauth, api key rozwiazan jest wiele


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
lukasz91
post 9.03.2016, 18:59:30
Post #3





Grupa: Zarejestrowani
Postów: 149
Pomógł: 7
Dołączył: 6.01.2010
Skąd: Opole Lubelskie

Ostrzeżenie: (0%)
-----


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?


--------------------
Go to the top of the page
+Quote Post
kpt_lucek
post 9.03.2016, 19:03:43
Post #4





Grupa: Zarejestrowani
Postów: 428
Pomógł: 77
Dołączył: 10.07.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


+ CORS


--------------------


Cytat
There is a Bundle for that
Lukas Kahwe Smith - October 31th, 2014
Go to the top of the page
+Quote Post
lukasz91
post 9.03.2016, 19:18:44
Post #5





Grupa: Zarejestrowani
Postów: 149
Pomógł: 7
Dołączył: 6.01.2010
Skąd: Opole Lubelskie

Ostrzeżenie: (0%)
-----


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?


--------------------
Go to the top of the page
+Quote Post
Damonsson
post 9.03.2016, 20:30:26
Post #6





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
lukasz91
post 9.03.2016, 20:46:59
Post #7





Grupa: Zarejestrowani
Postów: 149
Pomógł: 7
Dołączył: 6.01.2010
Skąd: Opole Lubelskie

Ostrzeżenie: (0%)
-----


Czyli w moim przypadku trzeba użyć CORS. Dzięki smile.gif


--------------------
Go to the top of the page
+Quote Post
redeemer
post 9.03.2016, 20:53:55
Post #8





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

Ostrzeżenie: (0%)
-----


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"?


--------------------
Go to the top of the page
+Quote Post
lukasz91
post 10.03.2016, 15:15:51
Post #9





Grupa: Zarejestrowani
Postów: 149
Pomógł: 7
Dołączył: 6.01.2010
Skąd: Opole Lubelskie

Ostrzeżenie: (0%)
-----


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?


--------------------
Go to the top of the page
+Quote Post
Crozin
post 10.03.2016, 15:18:03
Post #10





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


CORS służy zabezpieczeniu użytkownika/przeglądarki, nie API. To co zapewne będzie Cię interesować to np. OpenID Connect z oAuth2.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.04.2024 - 07:45