私はSnapchatを使用したことがなく、使用するつもりもありませんが、特に、アプリのAPIを今すぐ作成していて、回避したいので、画像の漏えいに関する最近のメディア報道に関して、彼らに何が起こったのかについて読んでいますこれは私に起こったことから。
何が起こったのかを調べたところ、Snapchatは実際には何も問題を起こしていないようです。サードパーティのWebアプリがapi呼び出しを盗聴したようです-驚くことではなく、誰でもそれを行うことができます。そのため、apiが認証を要求する必要があります。これはどのように行われるかはさまざまですが、おそらくトークンの種類によって異なります。
いずれにしても、Snapchat apiは認証を必要としたため、安全だと思いましたが、サードパーティのアプリがユーザーに自発的にユーザー名とパスワードをアプリに入力させ、ログインと認証を許可していることがわかりました。
これはサードパーティ製のアプリであり、公式のスナップチャットアプリではなかったことを思い出してください。ユーザーがこのようなことをすることを期待することは決してなかったでしょう。それは、ホテルの係員の代わりに通り過ぎる人に車のキーを渡すようなものです。
さて、ここまでは、これを回避するためのテクニックでAPIに適用できるものはありますか?どうすれば同じ状況に陥るのを防ぐことができるかわかりません。
この問題が完全に発生するのを防ぐことは不可能です。 helpではなく、完全に移行問題を解決する方法が2つあります。
SSLのみを使用:トラフィックを暗号化できない理由がない場合よりもクライアントとサーバーの両方を制御している場合、これにより、トラフィックを調査して人々がAPI呼び出しを傍受するのを防ぎます-また、ユーザーの秘密を保護し、人を防ぐのに役立ちます-中間攻撃。
APIキーを使用します。これは、API呼び出しが承認されたアプリケーションからのものであることを検証するトランザクションに添付できる非表示のキーである必要があります。プレーンテキストで表示される場合、キーは役に立たないため、これはトラフィックが暗号化されている場合にのみ役立つことに注意してください。
繰り返しになりますが、ウェブの性質はかなり安全ではないため、自分を完全に保護することはできません。最初はセキュリティを念頭に置いて構築されていなかったため、公開されたものはいつでも他の当事者によって使用できる/使用されると想定する必要があります。
1つの可能な解決策(ただし、わずかなトレードオフがある)は、特定のユーザーがいつでも持つことができる有効なトークンの数を制限することです。これにより、サードパーティのサイトへのアクセスが停止することはありませんが、APIを不適切な方法で使用しているユーザーにある程度の不快感を与えます。この制限を1に設定すると、サードパーティアプリがユーザーのアカウントにログインすると、他のセッションの認証がすべて解除されます。