2016-10-01 8 views
0

APIの認証についてもう少し理解したいと思います。私はセキュリティの仕組みについてはほとんど知らない。一般的なAPIセキュリティのヒントとトークンの仕組みに関する情報

私は私のアプリのためにAuth0を使用していますし、それが唯一のソーシャルメディアサイトからログインをサポートしています。私のAPIは、ユーザーが認証されていて、間違ったものがデータベース(mongodb)に保存されないように送信されているデータをチェックします。それが私のAPIを保護するために現在実装しているものです。ユーザーがログインして自分のトークンを取得し、別のユーザー_idを推測するだけで情報を別のアカウントに投稿することは可能でしょうか。

は例えば、物品は、そのすべての内容および文書作成者のIDを受信します。

これが可能であれば私のAPIを確保する上でいくつかの解決策は何ですか。

安全なAPIを作る上の任意の他のヒント

は感謝しています!

答えて

1

Auth0はだけでなく、ソーシャルネットワークでログインをサポートしています。あなたは、トークンが安全な人工物である

など、ユーザー名/パスワード、LDAPサーバ、SAMLサーバでログインすることができます。著者はトークン自体を妥協することなくトークン内のIDを変更することはできません(例えば、デジタル署名が失敗するなど)ので、他人を偽装するのは簡単ではありません。あなたのAPIが最初に必要とすることは、リクエストに追加されるトークンの完全性をチェックし、無効なもの(不正な署名、期限切れなど)を含むものを拒否することです。

これは、コンテンツの多くを必要と質問ですので、私はここに始まる推薦する:応答のためのhttps://auth0.com/docs/api-auth

+0

感謝を。私の質問は、誰かが自分のトークンを使用して、_idを変更するだけで郵便配達員などの他の人の代わりにAPIにデータを送信できるかどうかです。私のAPIは、記事の内容(タイトル、コンテンツなど)と私が心配しているauthor_idというフィールドを操作できます。 –

+0

はい、あなたがトークンを紛失した場合、それを所有している誰でもそれを使用することができます。 SSLを介してすべてのやりとりが行われる理由はトークンの有効期限が切れる理由です。したがって、トークンが漏洩する可能性がある場合、それは使用できません。 –

+0

残念ながら、これはまだ私が探している答えではありません。私はトークンが失われた場合、セキュリティが破られる可能性があることを理解しています。 ユーザがこのスキーマを使用する物品を作成 ユーザユーザー= {:123、 名「何」、 _id}ための単純なMongoDBのスキーマを想像します。 article = { id:987 author Id:ユーザーIDと同じ 内容: "blabla" } 記事は、authorIdを使用してGETリクエストによって取得されます。私はちょうど彼が望むものにサーバーへのPOSTリクエストを作成し、彼自身の合法トークンを使用してデータベースに送信するときにユーザーがauthorIdを変更できるかどうか不思議です。 –

関連する問題