Mam usługę REST, która jest w miarę kompletna i będzie używana w aplikacji na iOS. Jest zbudowany przy użyciu Ruby/Sinatra, ale nie sądzę, że to ma naprawdę znaczenie.Jak chronić "publiczną" część usługi REST przed spamem?
Używam podstawowego uwierzytelniania HTTP przez SSL dla różnych punktów końcowych i ta część działa bardzo dobrze.
Pytanie brzmi: Pytanie: Jak powstrzymać spamerów itp. Przed wywołaniem części usługi REST, które nie są chronione za pomocą podstawowego uwierzytelniania HTTP?
Przykład: Rejestracja użytkownika
Przyjmijmy wezwanie reszta jest (POST).../register_account przekazując obiekt JSON w organizmie.
Z oczywistych powodów, to połączenie nie może oczekiwać nazwy użytkownika/hasła powiązanego z kontem użytkownika.
Idee są:
1) Aplikacja posiada własną nazwę użytkownika ''/hasło, a niektóre połączenia byłoby sprawdzić app-mandatów. Problem: Rootowanie urządzenia itp. Może wydobyć te poświadczenia.
2) Aplikacja przekazuje tajny token za pośrednictwem nagłówka HTTP do usługi REST dla tych połączeń. Problem: Tak samo jak (1)
Czy są jakieś powszechnie stosowane metody zapobiegania takim wywołaniom spamu? Myślę, że może wprowadzić identyfikator urządzenia iPhone'a w miksie, ale nie zidentyfikowałem jeszcze jednoznacznego podejścia.
Dzięki
. Wykorzystam ten klejnot: https://github.com/datagraph/rack-throttle w celu ograniczenia szybkości. Podklasuję go tak, aby identyfikator klienta był kombinacją identyfikatora urządzenia + adresu IP. Będzie także trzymał się pomysłu na poświadczenia aplikacji. – Riaz