5

私は、リクエスト メソッド、URL、パラメーター、公開 API キーに基づいて文字列を作成し、プライベート API キーによってエンコードされたカスタム認証メソッドを使用して、API 中心の Web アプリケーションに取り組んでいます。これはサーバー側では正常に機能しますが、クライアント側ではプライベート API キー (および認証方法) が脆弱になります。私は過去 1 時間ほど、この API キーを保護するための良い方法を探してきました。私が見つけることができる最善の方法は、サーバーを介してプロキシすることですが、これについてはまだ 100% 確信が持てません。

まず、気にする必要はありますか?Web アプリケーションでセキュリティを優先したいのですが、ユーザーのアカウントの変更を処理するものには、(HMAC ハッシュに加えて) 要求を承認するための一時的な暗号化されたトークンが必要です。

プロキシからの私の理解では、サーバーにリクエストを送信し、サーバーは秘密キーで暗号化して情報を返します..しかし、サーバーはリクエストが有効なAPIキーを持つソースからのものであることをどのように検証しますか?

私が何をすべきかについて、誰かが洞察を提供できますか? これは、JavaScript、iOS、Android などのクライアント側コードの潜在的な脆弱性になる可能性があると思います。

4

1 に答える 1

6

クライアントを信頼することはできません。難読化しても、誰かがそれを理解する可能性があります。たとえば、攻撃者は難読化アルゴリズムをリバース エンジニアリングしたり、デバイスのメモリを調べたり、ネットワーク経由で送信されたものをキャプチャしたりする可能性があります。

ただし、サーバー側でセキュリティを強化することで、安全なアプリを作成できます。たとえば、特権 API リクエストを正常に行うには、ユーザーを認証する必要があります。

また、入力の検証、レート制限、または IP アドレスの追跡によって、サーバー側で API の使用を強制することもできます。

于 2013-09-29T06:01:15.567 に答える