Pracuję nad aplikacją WWW opartą na interfejsie API z niestandardową metodą autoryzacji, która polega na budowaniu łańcucha na podstawie metody żądania, adresu URL, parametrów, publiczny klucz API i kodowany przez prywatny klucz API. Działa to dobrze po stronie serwera, ale po stronie klienta prywatny klucz API (i metoda autoryzacji) będzie narażony na atak. Spędziłem ostatnią godzinę lub tak szukając dobrego sposobu na zabezpieczenie tego klucza API, a najlepszą metodą, jaką mogłem znaleźć, było pośrednictwo przez mój serwer, ale nadal nie jestem pewien w 100% na ten temat.Zabezpieczanie kluczy API na klientach (JavaScript, Android, iOS itp.)
Po pierwsze, czy powinienem się martwić? Chcę uczynić bezpieczeństwo priorytetem w mojej aplikacji internetowej, ale wszystko, co zajmie się modyfikacją konta użytkownika, będzie wymagało tymczasowego, zaszyfrowanego tokena do autoryzacji żądania (oprócz hasha HMAC).
Moje zrozumienie z pośrednictwa proxy polegało na wysłaniu zapytania do serwera, który następnie zaszyfrowałby klucz prywatny i zwrócił informacje. Ale w jaki sposób serwer sprawdzi, czy żądanie pochodzi ze źródła z poprawnym API klawisz?
Czy ktokolwiek może podać wgląd w to, co powinienem zrobić? Czuję, że może to potencjalnie stanowić lukę w zabezpieczeniach każdego kodu po stronie klienta, w tym JavaScript, iOS i Androida.
Proszę [nie używaj podpisów lub sloganów w swoich wpisach] (http://stackoverflow.com/faq#signatures). – meagar
w jaki sposób klucz prywatny byłby podatny na ataki? musisz podać klucz klientowi lub nie zadziała ... – dandavis
Obecnie klientami będą tylko moje oficjalne aplikacje (internetowe i mobilne). Ale klucz prywatny i metoda autoryzacji byłyby widoczne w źródle JavaScript, aby możliwe było wywoływanie AJAX na stronie. – Sam