ユーザー パスワードのクレンジング: 総合ガイド
ユーザーが指定したパスワードをデータベースに保存するために準備する場合、クレンジングまたはエスケープを適用したくなります。メカニズム。ただし、このアプローチは多くの場合逆効果であり、特にパスワードのハッシュ化に PHP のpassword_hash() 関数を使用する場合には不必要です。
ハッシュ化されたパスワードにクレンジングが不要な理由
パスワードのハッシュ化これを、簡単に元に戻せない、または SQL インジェクション攻撃に使用できない形式に変換します。ハッシュ関数は入力内の特定のバイトに特別な意味を持たないため、セキュリティ目的でのクレンジングは不要です。
ユーザーがスペースや特殊文字を含む任意のパスワードやフレーズを使用できるようにすることで、ハッシュされたパスワードの安全性が確保されます。 。 Password_hash() のデフォルトのハッシュ アルゴリズムである PASSWORD_BCRYPT は、ランダムなソルト、ハッシュされたパスワード情報、およびコスト パラメーターで構成される 60 文字の文字列を生成します。
パスワード ハッシュに対するサニタイズの影響
サニタイズ方法が異なると、パスワードに大きく異なる影響を与える可能性があります。 「私は "デザート トッピング" & !」というパスワードを考えてみましょう。
パスワード クレンジングの結果
これらのクレンジングを採用するメソッドは不必要な複雑さをもたらします。パスワードを検証する場合は、password_verify() を使用する前に、投稿されたパスワードに同じクレンジング メソッドを再適用する必要があります。そうしないと、検証が失敗します。
password_hash() が使用される場合、クレンジングによって追加のセキュリティは提供されず、プロセスが複雑になるだけです。
代替ソリューション
ユーザーのパスワードをサニタイズする代わりに、以下:
以上がユーザーのパスワードをハッシュする前にサニタイズする必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。