8

私は Backbone.js を使用しており、ステートレス REST API と通信します。一部の呼び出しでは、HTTP Basic による認証が必要です。

私が理解できないのは、どういうわけか各リクエストを認証する必要があるということです.どうすればこれを安全に行うことができますか? 私が最初に考えたのは、Cookie を使用してユーザー名とパスワードを保存することでしたが、これは脆弱でしょうか?

これは安全に行うことができますか?

4

2 に答える 2

9

この質問には2つのテーマがあります。1つはセキュリティに関するもので、もう1つはRESTルールに関するもののようです。

認証を安全に行う方法は、SSL接続を介してそのデータを渡すことです。これは、ネットワークを介してデータを安全に転送する唯一の方法です。

各要求に対して基本認証(REST)を使用して認証を送信することに関して、私が知っている人の多くは実際にこれを行っていません。

どれだけのセキュリティが十分なセキュリティであるかについては常に長い議論があり、それは実際にはアプリケーションと目的によって異なります。これがあなたが探している決定的な答えではないことを私は知っていますが、私はあなたに私の見解とあなたが言及した問題にどのように対処するかをあなたに与えるだけです。

RESTfulアプリの場合、ストーリーは各リクエストを認証する必要があるということですが、実際には、これは厳格なルールというよりも「ガイド」であることがわかります。Rareは、すべてのルールに従う完全にRESTfulなアプリケーションです。暗号化されたCookieを使用して、1回発生し、1週間で期限切れになる標準の認証フローでユーザーセッションデータを保存します。データ転送はSSLを介して行われ、MITM攻撃を防ぎます。また、変更されたバックボーン同期は、クロスサイトリクエストフォージェリを防ぐために、各POST、PUT、DELETEとともにCSRFトークンを送信します。私が取り組んでいるソーシャルアプリにはおそらく「十分」です。銀行振込などを行っている場合はそうではないかもしれません。この種のことがあなたが何をしたいかを判断する際の参照点をあなたに与えることを願っています。

于 2012-08-27T23:44:37.447 に答える
4

https://github.com/fiznool/backbone.basicauthは役に立つと思いますか?

このプラグインは、バックボーン モデルとコレクションを介して、HTTP 基本認証によって保護されているリモート リソースへのアクセスを可能にします。

それはどのように機能しますか?

HTTP 基本認証で保護されたリソースでは、リクエストごとに次の HTTP ヘッダーを設定する必要があります。

承認: 基本 アクセス トークンは、ユーザー名とパスワードを取得し、: 区切り文字を使用して連結し、Base64 にエンコードすることによって形成されます。

このプラグインは Base64 エンコーディングを処理し、Backbone.sync を使用するすべてのリクエストで Authorization ヘッダーを自動的に設定します。

于 2013-03-25T17:28:50.023 に答える