Sie können Verbindungen nur dann effektiv ablehnen, wenn Sie jedem Kunden einen privaten Schlüssel zur Verfügung stellen, den Sie individuell widerrufen können. Aber das ist wahrscheinlich übertrieben. Sie brauchen keine kugelsichere Lösung, wenn sich die meisten Leute nicht die Mühe machen, eine Kugel abzufeuern.
Es ist eine Sicherheitsfrage. Beschreiben wir also ein Bedrohungsmodell und Strategien zur Schadensbegrenzung.
Angenommen, Sie haben einen URL-Treffer, der für Sie spürbare Kosten verursachen kann (z. B. Verarbeitungskosten), und Sie möchten ihn sowohl vor einem einfachen DoS-Angriff als auch vor Nachahmer-Apps schützen.
Verwenden Sie SSL, um zu verhindern, dass die Verbindung einfach analysiert wird. Verwenden Sie eine nicht eindeutige Portnummer, eine Weiterleitungssequenz und einen Cookie-Austausch, um die Verbindung zu vereinfachen, bevor Sie den kostspieligen Teil der Anforderung ausführen. Verwenden Sie einen in Ihre App eingebauten Geheimcode, um dem Server mitzuteilen, dass er die Verbindung akzeptieren muss.
Jetzt kann niemand mehr die teuerste URL erlernen, indem er einfach einen Paket-Sniffer ausführt oder sich URL-ähnliche Zeichenfolgen in Ihrem Code ansieht. Ein potenzieller Angreifer muss Ihre App dekompilieren.
Sie können Ihren Code nicht wirklich davor schützen, dekompiliert und / oder unter einem Debugger ausgeführt zu werden. Der Angreifer lernt schließlich den geheimen Schlüssel und die Verbindungssequenz.
Sie bemerken, dass Sie unter Ihrer teuren URL Rouge-Anfragen erhalten: entweder in Form eines Angriffs oder in Form einer Nachahmer-App, die auf Ihren Dienst zugreifen muss, um ausgeführt zu werden, oder dass ein Exploit-Code öffentlich veröffentlicht wird. Sie können jedoch eine unechte Anfrage nicht von einer legitimen Anfrage unterscheiden.
Erstellen Sie ein kostenloses kleines Update für Ihre App mit einem anderen geheimen Schlüssel. Es sollte eine andere kostenintensive URL gefunden werden, die dieselben Daten wie die gefährdete kostenintensive URL enthält. Machen Sie die beiden URLs für einige Zeit zugänglich.
Beobachten Sie, wie Ihre Benutzerbasis auf die aktualisierte Version umschaltet. Drossle die kompromittierte teure URL und 404 es schließlich. Sie haben gerade eine Sicherheitslücke geschlossen, hoffentlich ohne zu viel zu verlieren. Zurück zu Punkt eins.
Haftungsausschluss: Ich bin kein Sicherheitsexperte.