Zabezpieczenie API, API dostępne tylko dla Android App

0

Witajcie.

Napisałem sobie API na swoim serwerze, które wyświetla mi wpisy z kalendarza. Pobierane oczywiście z bazy danych MySQL. Szczegóły raczej nie istotne.

Moja aplikacja na telefon łączy się z tym api, pobiera mi do tabelki te wpisy z kalendarza.

Cały problem polega na tym, że jeśli ten adres otworzę w przeglądarce to te wszystkie wpisy za pomocą json_encode mi się wyświetlają. Nie chcę ażeby ten adres został chociażby zaindeksowany w wyszukiwarkach, czy też był ogólnie możliwy do otworzenia za pomocą komputerów. Jednym słowem chcę aby po otwarciu strony API na komputerze była pusta strona a moja aplikacja Androidowa miała dostęp do tych danych wynikowych.

Jaki jest najprostszy sposób aby to zrobić ?

P.S Mam też formularz POST do dodawania wpisów do kalendarza poprzez Android App więc tam też chcę jakieś zabezpieczenie zrobić aby ktoś nie wysłał mi POST na przykład z innego serwera.

0

Nie możesz/nie powinieneś tak robić - security through obscurity to bardzo zła praktyka.

jeśli ten adres otworzę w przeglądarce to te wszystkie wpisy za pomocą json_encode mi się wyświetlają

Co w tym złego?
Przecież i tak user ma do nich dostęp koniec końców.

Nie chcę ażeby ten adres został chociażby zaindeksowany w wyszukiwarkach

No to stwórz plik robots :P

Mam też formularz POST do dodawania wpisów do kalendarza poprzez Android App więc tam też chcę jakieś zabezpieczenie zrobić aby ktoś nie wysłał mi POST na przykład z innego serwera.

Stwórz mechanizm autoryzacji - przy logowaniu wydawaj klucz sesji i wymagaj go do każdej akcji.

0

Ale ta aplikacja ma być dostępna tylko dla mnie. Nikt inny instalować jej nie będzie, nikt oprócz mnie tych danych nie powinien zobaczyć.

0

Zatem zrób mechanizm autoryzacji i wymagaj podania klucza sesji, aby pobrać te wpisy.

0

A jakieś konkrety / przykłady ?
Tyle to wiem ale takie rzeczy też trzeba przesyłać więc to chyba nie jest bezpieczne :/

0

Masz setki artykułów w internecie, poczytaj o autoryzacji i szyfrowaniu.

0

Jak tylko ty masz tą aplikację to co za problem dodawać do posta czy geta dodatkowy parametr "secretPassword" ustawiony na jakąś wartość a na serwerze ją sprawdzać? Żeby to wyciekło ktoś by musiał reversować twoją aplikację albo podsłuchiwać twój ruch sieciowy ;]

1 użytkowników online, w tym zalogowanych: 0, gości: 1