2017-02-14 12 views
-1

私はJAVA RESTウェブサービスを作成していますが、どのように動作するのかを理解しようとしていますが、クライアントがJSONを情報とともに送信するシンプルな方法を作りました。それと。非常に簡単。REST SECURE SECRET KEY

私がしていること:クライアントはアカウントなどの新しいオブジェクトを作成したいと思いますが、世界中の誰もが自分のウェブサイトにjsonを送信してオブジェクトを作成することは望ましくありません。 しかし、私はIPのフィルタをかけたくありません。クライアントアプリケーションを誰が使用するのか、何を使用するのか分からないからです。

誰もが単にデータを送信するのを防ぐために何をしましたか?私はプレーヤーのための秘密鍵を作成したと、彼らは好きで、それを使用します。http://[website]/[Applicationname]/Webresources/[SECRETKEY]/create は今、秘密鍵を持つ人だけが作成できるので、

これは動作します(リクエストでJSONを送信)、そして、彼らは唯一取得します私がそれらにそれを与えるなら秘密鍵。私は彼らが他の人にこの秘密鍵を与えてくれないと確信しています。もしそうならば、彼らは自分自身をねじ込むだけです。彼らのサービスは偽のデータをたくさん得るでしょう... しかし、私はそれがより安全で、 HTTPSがドメイン+パラメータを隠すかどうかわかりませんが、そうは思いませんか?

私の質問は:どのように秘密鍵を送信することができます誰も秘密鍵は何ですか?

+0

ホイールを再現しないでください。どのようにOAUTH2を行うか調べる –

+0

私は何かを再構築していません:P私は他の方法を知らなかったのでこのようにしましたが、ありがとう、私はOAUTH2を調べます! – runefist

答えて

2

HTTPSを使用して、本体に秘密鍵データを指定するPOST要求を送信します。コンテンツタイプを "x-www-form-urlencoded"に指定する必要があります。コンテンツはエンコードされ、URLを傍受する敵は身体を解読できません。

しかし、URLパスで秘密鍵を使用して各リクエストを送信すると、実装がかなり安全ではありません。REST呼び出しを傍受すると、秘密鍵が傍受されます。基本認証やOAuth認証サービスを行うことができれば、RESTサービスを保護する一般的な方法である、サービスにアクセスするために発行された有効なトークンを持つ特定のユーザーのみを認証します。

+1

実際、OAuth、Basic、Digestなどの標準は、最も簡単で安全な方法です。その次に - すべてのWS/RESTフレームワーク(CXF、Spring、Axis、..)には、認証/認可オプションを実装する方法があります。既に実装されているオプションを使用してみてください – gusto2

関連する問題