ホームページ  >  記事  >  バックエンド開発  >  PHP インターフェースのセキュリティ: PHP インターフェース暗号化のための 4 つのソリューション

PHP インターフェースのセキュリティ: PHP インターフェース暗号化のための 4 つのソリューション

不言
不言オリジナル
2018-08-18 18:01:2111826ブラウズ

この記事は、PHP インターフェイスのセキュリティに関するものです。PHP インターフェイス暗号化の 4 つのソリューションは、一定の参考値があります。必要な友人は参照してください。お役に立てば幸いです。

インターネット コード作成者として、フロントエンドであろうとバックエンドであろうと、http リクエストをある程度理解し、http の特性を理解し、リクエストとレスポンスが何であるかを明確に理解する必要があります。 http. 、Web サイトに Cookie、セッション、確認コードの意味と必要性が存在する理由を知ってください。なぜなら、APP インターフェイスのセキュリティについて議論することは、HTTP リクエストのセキュリティについて議論することになるからです。

通常、PC 側では暗号化された Cookie を使用してメンバーを識別し、セッションを維持しますが、Cookie はブラウザのローカル ストレージ機能に属します。 APP 側は使用できないため、トークン パラメーターを通じてメンバーを識別する必要がありますが、このトークンをどのように処理するか?

まず最初に、インターフェースを暗号化する前に私が行った 4 つのソリューションについて話しましょう:

オプション 1
とアプリ開発 人々の同意特定の md5 組み合わせアルゴリズムを使用して、両端を比較します。同じであれば許可し、そうでない場合は拒否します。
ただし、これも安全ではありません。APP プログラムが逆コンパイルされると、これらの合意されたアルゴリズムが公開されます。特に Android APP では、アルゴリズムを使用してインターフェイス リクエストをシミュレートし、検証に合格することができます;

オプション 2
データベース メンバーシップ テーブルのパスワードはランダムに暗号化されますそして、二重暗号化された md5 値。ユーザーがログインすると、メンバーの対応する uid とパスワードを返します。パスワードは平文ですが、他の人が知っている場合はログインできません。結局、暗号化されており、毎回インターフェイスが要求されていますuser_id=333&token=aa37e10c7137ac849eab8a2d5020568f、主キー uid を通じて、現在の uid に対応するトークンをすぐに見つけて比較できます。
しかし、このアイデアは単純すぎます。パケットをキャプチャした人はパスワードを渡すことはできませんが、トークンが判明すると、ユーザーがパスワードを変更しない限り、ユーザーはいつでもこのトークンを使用してメンバーの関連インターフェイスを操作できます;

#オプション 3対称暗号化アルゴリズムを使用して、この暗号化アルゴリズムは
uid Web サイトの公開キー に対して時間制限のある暗号化を実行し、特定の制限時間内で利用可能になります。メンバーがログインに成功すると、サーバーは ID を暗号化してクライアントに返します。クライアントはインターフェイスを要求するたびにこのパラメータを取得し、サーバーは復号化によって認証します。ただし、これを行うことも安全ではありません。なぜなら、外部から身を守るために、内部から身を守ることはできないからです 今回のCtripの停止は、退職した内部社員の悪質な操作によるものだと聞きました。内部の悪意のある担当者が対応するアルゴリズム ルールを知っている場合、データベース権限を持っていない場合でも、インターフェイスを通じて関連するメンバーを操作できます。

オプション 4メンバーのログイン時にリクエストします。インターフェイスにログインすると、サーバーはクライアントにトークンを返します。トークンを生成するルールは次のとおりです。
Web サイトの公開キーの現在の uid と乱数の現在のタイムスタンプ 二重暗号化 (依存)必要に応じて、トークンをキャッシュに入れるかどうかなどを決定します。一定時間が経過すると自動的に期限切れになります。データベースに入れておくことをお勧めします(データベースに入れたい場合は、別のテーブルを作成します)ユーザーのログインとログアウト時間を記録するため)、ユーザーが手動でログアウトおよびログインするときにのみトークンが役立つように、ユーザーがログアウトするときに変更します。 セキュリティを確保するには、一定期間内にユーザーが自動的にログアウトできるようにする必要があります。このソリューションは、Linux およびデータベースの権限管理と組み合わせることで、外部および内部の両方の保護を防ぐことができます。

他のインターフェイスの開発

  1. JSON はクロスプラットフォームのパフォーマンスが優れているため、データ形式は JSON 形式のデータを使用するのが最適です。 JSON を生成するときは、json の 2 つの形式: オブジェクト (ディクショナリ) と配列に注意してください。モバイル開発言語の PHP には同様の foreach はありません。オブジェクトを走査することはできませんが、配列のみを走査できます。オブジェクトに対する操作は通常、キー値を取得するためのキー名。


  2. #成功か失敗か。インターフェイスは明確なデータ ステータス情報を提供する必要があり、NULL を返すことはできません。NULL が返された場合、IOS 側でクラッシュします。
  3. 関連する推奨事項:

PHP は QR コード (コード) の生成と識別をどのように実現しますか

# php Excelファイルをcsv形式でエクスポートする実装コード

phpとajaxでテーブルのリアルタイム編集を実装する方法(コード添付)

以上がPHP インターフェースのセキュリティ: PHP インターフェース暗号化のための 4 つのソリューションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。