Nie możesz skutecznie odrzucać połączeń, chyba że dostarczysz każdemu klientowi klucz prywatny, który możesz indywidualnie unieważnić. Ale to prawdopodobnie przesada. Nie potrzebujesz kuloodpornego rozwiązania, jeśli większość ludzi nie będzie kłopotać się wystrzeleniem kuli.
To pytanie bezpieczeństwa, więc opiszmy model zagrożenia i strategie łagodzenia.
Załóżmy, że masz trafienie URL-em, które może ponieść znaczne koszty (np. Koszty przetwarzania), i chcesz chronić go zarówno przed prostym atakiem DoS, jak i przed aplikacjami kopiującymi.
Użyj protokołu SSL, aby ukryć połączenie przed łatwą analizą. Użyj nieobliczalnego numeru portu, sekwencji przekierowań, wymiany plików cookie, aby nieco skomplikować połączenie przed wykonaniem kosztownej części żądania. Użyj tajnego kodu zapisanego w swojej aplikacji, aby poinformować serwer, że musi zaakceptować połączenie.
Teraz ktoś nie może nauczyć się kosztownego adresu URL po prostu uruchamiając sniffer pakietów lub patrząc na ciągi podobne do adresu URL w kodzie. Potencjalny atakujący musi zdekompilować Twoją aplikację.
Naprawdę nie możesz chronić swojego kodu przed dekompilacją i / lub działaniem pod kontrolą debugera. Atakujący w końcu uczy się tajnego klucza i sekwencji połączeń.
Zauważysz, że zaczynasz otrzymywać prośby o rouge pod swoim kosztownym adresem URL: w formie ataku lub w formie aplikacji naśladowczej, która musi uzyskać dostęp do Twojej usługi, aby mogła zostać uruchomiona, lub może kod exploita jest opublikowany publicznie. Nie można jednak odróżnić fałszywej prośby od uzasadnionej prośby.
Utwórz bezpłatną niewielką aktualizację aplikacji, używając innego tajnego klucza. Powinien trafić inny kosztowny adres URL, który obsługuje te same dane, co skompromitowany kosztowny adres URL. Przez pewien czas udostępniaj oba adresy URL.
Zobacz, jak baza użytkowników przełącza się na zaktualizowaną wersję. Ogranicz przepustowość kosztownego adresu URL i ostatecznie 404. Właśnie ograniczyłeś naruszenie bezpieczeństwa, miejmy nadzieję, nie tracąc zbyt wiele. Z powrotem do kwadratu.
Oświadczenie: Nie jestem ekspertem od bezpieczeństwa.