2011-08-09 21 views
2

javascriptからWebサービスを呼び出しているときに認証/セキュリティを追加する最良の方法は何ですか?
Webサービスを自分のアプリケーションから呼び出すだけで、他の誰かがWebサービスURLをブラウザにコピーして自分のWebサービスにアクセスできないようにする必要があります。JavascriptからWebサービスを呼び出す

最初のいくつかの回答から、それは不可能に近い次のようです。
それで彼は不可能な言葉を知らないので、私のクライアントに何を返すべきですか?

〜アジンカ。

+0

塩、トークン、パスワード?あなたは「サービス」にアクセスする方法についてもっと詳しく説明できますか? – Calum

+0

@Calumn:私はYUIのオートコンプリートのために私のWebサービスを使用しています。私はYUIのオートコンプリートに自分のWebサービスのURLを提供しています。 – xyz

答えて

1

シンクロナイザトークンパターンを使用して、サービス参照をロードするページに知られているデータでしかサービスを使用できないようにしてください。 OWASP Top 10 for .NET developers part 5: Cross-Site Request Forgery (CSRF)のWebサービスでこれを行う例があります。これはあなたが何をしているかを達成するはずです。

+0

素晴らしいです。確認してお知らせします。 – xyz

1

これはできません。クライアントがJavaScriptからWebサービスにアクセスできるようにすると、クライアントは常にそれを実行できます。認証の要求とと​​もに送信する必要があるトークンなど、ある種の制約を使用することによってのみアクセスを減らすことができます。ワンタイムトークンに変換することさえできます。しかし、これは新しい問題を生み出します(例えば、答えが失われた場合にどうなるでしょうか?クライアントのjavascriptはクエリを再実行できません)。

+0

@nfecher:WebサービスのURLをブラウザにコピーして誰かがサービスにアクセスできないようにすることはできますか? – xyz

+0

いいえ、実際はありません。その他:クライアントがWebサービスにアクセスできるようにするため、このような防止は[snake oil](http://en.wikipedia.org/wiki/Snake_oil_%28cryptography%29)のみになります。 – nfechner

+0

提案していただきありがとうございます。これは、JAVAスクリプトを通じて使用されるWebサービスが常にすべての人がアクセスできることを意味しますか? – xyz

関連する問題