Obwohl es wahr ist, gibt es im Grunde keine Möglichkeit zu garantieren, dass Ihre API nur von Ihren Kunden konsumiert wird, es sei denn, Sie verwenden ein sicheres Hardwareelement, um das Geheimnis zu speichern (was bedeuten würde, dass Sie Ihr eigenes Telefon von Grund auf neu erstellen könnten Wenn Sie eine nicht offizielle Client-App verwenden, gibt es einige ziemlich effektive Dinge, die Sie tun können, um die API zu verschleiern. Verwenden Sie zunächst HTTPS, das ist selbstverständlich. Aber der Schlüssel hier ist, in Ihrer App ein Zertifikat zu pinnen.Das Zertifikats-Pining ist eine Technik, in der Sie das gültige öffentliche Schlüsselzertifikat für den HTTPS-Server speichern, den Sie verbinden möchten. Dann bestätigen Sie bei jeder Verbindung, dass es sich um eine HTTPS-Verbindung handelt (akzeptieren Sie keine Downgrade-Angriffe), und, noch wichtiger, überprüfen Sie, dass es sich um genau dasselbe Zertifikat handelt. Auf diese Weise verhindern Sie, dass ein Netzwerkgerät in Ihrem Pfad einen Mann im mittleren Angriff ausführt, und stellt sicher, dass niemand in Ihrer Konversation mit dem Server mithört. Indem Sie das tun und ein bisschen schlau über die Art und Weise sind, wie Sie die allgemeinen API-Parameter in Ihrer Anwendung speichern (siehe Code-Verschleierung, insbesondere wie Sie String-Konstanten verschleiern), können Sie ziemlich sicher sein, dass Sie der Einzige sind, der mit Ihrem Server kommuniziert. Natürlich ist Sicherheit nur eine Frage davon, wie stark jemand in deine Sachen einbrechen will. Dies verhindert nicht, dass ein erfahrener Reverse-Engineer Zeit übrig hat, um den Quellcode zu dekompilieren und zu finden, wonach er sucht. Aber all dies wird dazu führen, dass er sich die Binärdatei ansieht, was ein paar Größenordnungen schwieriger ist, als nur einen Mann im mittleren Angriff auszuführen. Dies ist bekannt für die neuesten Schnappschüsse von ausgelaufenen Bildern. Drittanbieter-Clients für Snapchat existieren, und sie wurden durch Reverse-Engineering der API mittels eines Sniffers erstellt, der den Verkehr während eines Mannes in der mittleren Attacke betrachtet. Wären die Entwickler der snapchat-App schlauer gewesen, hätten sie ihr Zertifikat in ihre App gesteckt, was absolut garantiert, dass der Server von snapchat mit ihnen kommuniziert, und die Hacker müssten die Binärdatei überprüfen, was vielleicht eine viel mühsamere Aufgabe ist der Aufwand wäre nicht durchgeführt worden.
warum denken die Menschen immer dies möglich ist? Es muss über 1000 Fragen wie diese über SO geben. Ich bin fassungslos. – rook