私たちは新しいプロジェクトに取り組んでおり、私たちは 2 人の主任開発者であり、トークンを使用してサーバーとクライアント間の通信を保護する方法について岐路に立っています。
最初の提案:
ステップ 1) クライアントは、ユーザー名とパスワード、および current_time (この変数はサーバーのデータベースとクライアント側にも保存されます) を API に送信することにより、プライマリ トークンを要求し、サーバーは入力を解釈し、ハッシュされたトークンをレンダリングします。 (例: 58f52c075aca5d3e07869598c4d66648) データベースに保存し、クライアントに返します。
ステップ 2) クライアントはプライマリ トークンを保存し、プライマリ トークン + 認証要求で送信された current_time 変数を使用して新しいハッシュ トークンを作成します (この新しいトークンを main_token と呼びます)。サーバーも同じことを行い、次を使用して同じトークンを作成します。同じアルゴリズム。
ステップ 3) クライアントがサーバー API にクエリを実行するたびに、main_token がサーバーに送信されます。サーバーは、生成されたトークンとクライアントから送信された main_token を比較し、一致する場合、ユーザーが本物であることを意味します。
2番目の提案:
ステップ 1) クライアントは 2 つのランダム キーを生成します ($key1 = rand(10000,90000); $key2 = rand(10000,90000);) API での各リクエストで、クライアントはクエリ タイプを使用してハッシュを作成し、複雑なアルゴリズムを使用して 2 つのキーを作成し、これら 2 つのキー + ハッシュをサーバーに送信します。
ステップ 2) サーバーは、クライアントで使用されているものと同じアルゴリズムを使用してハッシュを作成し、クライアントから送信されたものと比較します。一致する場合、サーバーはクエリの処理に進みます。
さて、問題は、API リクエストを保護するために使用する最も論理的で安全な方法はどれかということです
よろしくお願いします