0

私は、開発しようとしている API の認証に頭を悩ませようとしています。

ユーザーがクライアント上のすべてのデータにアクセスできることを念頭に置いて、ユーザーを正常に認証する方法を考えてみた結果、このアイデアにたどり着きました。

Client sends username and password to the server
Server checks if they match a user.
    If it does, we create a hashed string with user_id+e-mail+currentTime+salt
    and stores this in a database-table with an expiration date.
Server returns hashed string to client

Client sends random request to server including key
Server checks if key is correct and if it's expired

これは安全な方法ですか、それともセキュリティ上の欠陥はありますか?

4

1 に答える 1

0

まず、Do i see security flaws?はい、いいえです。安全な接続を使用していない場合、ユーザーのパスワードとユーザー名をネット経由で送信することはお勧めできません。特に、ユーザーのパスワードを sha512 などでハッシュ化していない場合。

クライアント側でパスワードをハッシュしてから送信します。

たとえば、Twitter の API を見てみましょう。キーは、アカウントの認証にも使用されます。

ここに役立つ記事があります。

于 2013-11-10T17:30:04.377 に答える