2

iOS アプリ用の REST サービスを設計しています。iOS アプリからのリクエストのみが許可されるように、RESt サービスを安全にするにはどうすればよいでしょうか?

共有シークレットを使用することを考えていましたが、リクエストを検査するとこれが公開されるという問題がまだあります。

別の方法は、望ましいソリューションではない OAuth を使用することです。複数のリクエストでトークンを交換するのではなく、実際のリクエストで認証できるようにしたいと考えています。

私が考えることができる唯一の解決策は、時間ベースの暗号化です。共有シークレットは、サーバーで要求が特定の期間のみ有効である場合に基づいて暗号化されます。

4

2 に答える 2

3

HTTPS などの SSL で保護されたプロトコルを介して送信する場合 (およびサーバー証明書を使用して中間者攻撃から保護する場合) は、スニファーにリクエストが表示されないため、アプリに焼き付けられた共有シークレットが機能する可能性があります。 .

もちろん、誰かが本当にそうしたいのであれば、アプリをリバース エンジニアリングして、その中に保存されているシークレットを見つけることもできます。人々の銀行口座に接続するものを構築している場合は、気にしないでください。ささいなハッキングやサービスの DDOS 攻撃を防ぐために小さな保護層を追加しようとしているだけなら、それは合理的なアプローチのように思えます。

于 2012-10-16T02:26:47.913 に答える
0

これを回避することは確かに可能ですが、何らかのログイン メカニズムを使用することをお勧めしますが、認証を含むアプリのスプーフィングを防止することはできません。

クライアントを信頼することはできませんが、OAuth のようなものを使用すれば、少なくとも人々が試みないようにすることができます。アプリがアプリ内購入を使用している場合は、アクセスできるアカウントを認証してから、そのルートに従うことができます。ただし、それ以外には、いわば「完璧な」ソリューションはありません。

于 2012-10-16T00:43:22.063 に答える