1

ユーザーが所有するいくつかのリソース用の json API があります。この Railscast で説明されているように、API アクセス キーを使用して API アクセスを保護しました: http://railscasts.com/episodes/352-securing-an-api

これは問題なく機能します。リソースを追加/更新/削除するときに送信する必要があるユーザーごとに一意のキーがあります。私が抱えている問題は、API は別として、ユーザーが Web フォームからリソースを編集できる必要があることです。ただし、フォームがヘッダーで API キーを送信しないため、アクセスが拒否されるため、これは機能しません。

ユーザーが既にログインしているため、ユーザーのアクセスキーを送信するフォームを取得する方法はありますか? それとも、私はそれについて間違っていますか?おそらく、アクティブなセッションがあるかどうかを確認し、その場合は API キーの代わりにそれを認証として使用する必要がありますか?

4

1 に答える 1

0

ユーザーが既にログインしているため、ユーザーのアクセスキーを送信するフォームを取得する方法はありますか?

hiddenAPI アクセス キーは、フォームにフィールドとして含めることで、ユーザーに送信できます。受け取ったら、ログインしているユーザーに割り当てられたアクセス キーと比較できます。

しかし、あなたの顧客とあなたのビジネスについて考えてみてください。API キーをフォーム内に平文で含めることは、特に HTTPS が構成されていない場合に、ハッカーが望むものを変更するためのアクセス権を文字通りハッカーに与えるようなものです。

おそらく、アクティブなセッションがあるかどうかを確認し、その場合は API キーの代わりにそれを認証として使用する必要がありますか?

はい、これは安全な方法の 1 つです。あなたが言及した最初の方法はまったく安全ではありません。認証に関連するものは、簡単に変更できる場所 (フォーム、Cookie) に配置しないでください。

必要に応じて、両方session-based authenticationを使用できますAPI access Key。どのように?変更リクエストごとに有効期限のある API アクセス キーを生成するとします。x各変更は、トリガーされてから数分以内に送信する必要があります。送信したら、 に対してユーザーを認証し、に対して変更sessionを認証APIます。これはほんの一例です。

于 2013-01-06T05:24:10.773 に答える