バックグラウンド
Twitterのjavascriptapiを使用したいとしましょう。ツイッターのJavaScriptAPIは言う
OAuthでJavaScriptを使用する場合は注意が必要です。キーを公開しないでください[1]。
OAuthでJavaScriptを使用するのは安全ではないようです[2]。ネットワークの問題(httpsを使用できます)によるものではありませんが、view-sourceにアクセスできるユーザーは、JavaScriptでハードコーディングされたキーも表示できるためです。これらのキーを使用すると、ユーザーはアプリとは関係なくTwitterアカウントを制御できます。
私が見た中で最良のアプローチは、YQL [3]を使用することです。しかし、自分のサーバーでこれを行うのはどうでしょうか。
次のシナリオは安全ですか、それともあいまいですか?
シナリオ
Twitterのjavascriptapiを使用して、Twitterアカウントへのアクセスを制御することを計画しています。
ユーザーにAPIクレデンシャルへのビューソースアクセスを許可する問題を解決するために、すべてのTwitterAPI通信を単一の公開ページ(Post.phpなど)に集中させるとします。すべてのユーザーがこのページにアクセスできないようにするには、URLにGUIDを要求できます:Post.php?pass = 91626979-FB5C-439A-BBA3-7715ED647504
サーバー側のアプリケーションは、サーバー上で一意のGUIDが認識されているため、このページにhttpリクエストを送信します。
api通信はjavascriptのままである可能性がありますが、そのjavascriptへのアクセスは、guidと呼ばれるサーバーを介して保護されます。httpリクエストはサーバー上で開始されるため、トラフィックを確認してリクエストを表示する方法はありません。GUIDはクライアントのソースに含まれません。クライアントはサーバー関数にリクエストを送信し、サーバー関数はPost.phpに対してサーバー側のhttpリクエストを実行します。
これにより、基本的にブラウザからPost.phpにアクセスできなくなります。本質的に、サーバーはjavascriptapi呼び出しを開始します。
これは安全ですか、それともあいまいですか? (もちろんjavascriptを介して)より良いアプローチがありますか?