《PHP安全の道》学習ノート6:パスワード安全

1829 ワード

《PHP安全の道》:パスワード安全
最近数年、ユーザーのデータ漏洩が頻繁になり、PHP技術を使用した大手サイトが暴騰したり、脱庫されたりしている.フェイスブック社はこのような事件で株価が暴落したことがある.長期的な発展から見ると、ユーザーのデータセキュリティはウェブサイトにとって極めて重要であるため、開発者はデータ関連のセキュリティに注目し、機密データに対する技術的な保護を高める必要があります.
ユーザデータのセキュリティは、ユーザパスワードのセキュリティと密接に関連していることが多い.ユーザーはアカウントと関連データをサーバに格納し、パスワードが最初の一環となった.
  • 1.従来の暗号化方法MD 5またはSHA 1
  • 具体的なコードは以下の通りです.

    このような暗号化手段は比較的従来のため、ユーザーが設定したパスワードがあまりにも簡単であれば、攻撃者はパスワード辞書を使って暴力的に解読することができる.したがって、MD 5などの弱い暗号化アルゴリズムを用いて暗号などの機密データを暗号化することは推奨されず、ハッシュアルゴリズムを用いて暗号化するのがより好ましい.例えば、SHA 256またはSHA 512である.これらのアルゴリズムは、ssl証明書の生成やいくつかの重要な生成アルゴリズムなどに使用され、使用する価値があります.
    PHPにはhash()関数が内蔵されており,具体的には以下のコードを用いて示す.

    かつて不思議な電子商取引サイトに有名なsloganがいた.「私は自分のために代弁します.」パスワードの安全面では、自分のデータに「塩」を加えて、安全係数を増やすこともできます.
    塩(salt)やランダムsaltを用いて暗号化することで、解読をさらに困難にすることができる.簡単な例は次のとおりです.

    さらに複雑な暗号化では、mcrypt関数を使用してsaltを生成することができます.コードは以下の通りです.

    もちろん、自分の実際の業務の必要に応じて自分のアルゴリズムをカスタマイズすることもできます.以前、テンセントとインターフェースを開発したとき、私たちは異なる業務インターフェースが異なる業務コードを使ってtokenアルゴリズムの複雑さを増やすことを約束しました.
    暴力的な解読を防ぐために、以下の点に注意することができます.
  • 1.認証コードを使用してログイン検証または関連する認証を行います.
  • 2.秘密鍵を定期的にリフレッシュします.
  • 3.乱数の複雑なアルゴリズムを使用します.
  • 4.一定期間の検証回数を制限します.

  • 参考:PHP安全