前述の通り: モバイル端末とPHPサーバーインターフェースの通信処理設計(基本編)
api_tokenの検証のため、セキュリティをさらに強化することができます:
強化1:
さらに2つ追加 の2つがありますテーブル、1 つのインターフェーステーブル、1 つの認可テーブル の設計リファレンスは次のとおりです:
インターフェーステーブル
フィールドタイプ | note | |
イント | インターフェースID | |
varchar(120) | blog/Index/addBlogなど、「/」を境界線とするインターフェース名 | |
varchar(256) | Domain | |
tinyint(1) | は利用可能です。その他 もう一度展開してください! | intAPI 番号 |
api_name | varchar(120) | blog/Index/addBlog など、「/」を境界線とするインターフェース名 |
is_enabled
tinyint(1) が利用可能 1: 利用可能 0: 利用不可
int | 追加時間(スタンプ) | |
int | 有効期限(スタンプ) | |
(注: コアフィールドのみがリストされており、その他は拡張してみましょう! ) | 実行プロセスは次のとおりです: | 1. モバイル端末とサーバーによって生成された api_token を比較します。等しくない場合は、次のステップに進みます。インターフェース URL に従って、api_name と、クライアントからパラメーターとして返された client_id を組み合わせて、「認可テーブル」レコードを検索します。レコードが存在し、有効である場合 (使用可能かどうか、有効期限が切れているかどうか)、これは意味します。パーミッションの検証に合格し、インターフェイス データが返されるか、それ以外の場合はエラー メッセージが返されます。つまり、http リクエストがハイジャックされ、渡されたパラメータが改ざんされている可能性があると感じます。例を示します。 |
オプション 1: https を使用します。これは当てはまりません。 もっと言えば、これは比較的認識されているセキュリティ メカニズムです。 | オプション 2: デジタル署名、その実装。原則は次のとおりです: | httpリクエスト、次の3つのパラメータを渡す必要がある場合 |
パラメータ名2=パラメータ値2 | パラメータ名3=パラメータ値3 | 別のパラメーターを追加できます。パラメーターの名前は | identity_key
つまり: | identity_key | |
'); | したがって、渡される最終パラメータは次のとおりです。 | パラメータ名1=パラメータ値1 |
暗号化キー
')パラメータを受信した後、サーバーは、サーバーのidentity_key とクライアントの同じ暗号化ルールに従って identity_key
を再生成します。端末上のidentity_key
が等しくない場合、それは改ざんされていることを意味します。以上は、モバイル端末と PHP サーバー インターフェイス間の通信プロセス設計の強化版をさまざまな側面を含めて紹介しましたが、PHP チュートリアルに興味のある友人の参考になれば幸いです。