Default.settings.phpの指示は言う
この変数は、インストーラーによってランダムな値に設定されます。値が変更されると、すべてのワンタイムログインリンクが無効になります。サイトがWebサーバーのクラスターにデプロイされている場合は、この変数の値が各サーバーで同じであることを確認する必要があります。この変数が空の場合、シリアル化されたデータベース資格情報のハッシュがフォールバックソルトとして使用されます。
しかし このソルトの説明 は言う
ユーザーがアカウントを作成するか、パスワードを変更するたびに、新しいランダムソルトを生成する必要があります。
さらに、ソルトハッシュ(パスワードなど)ごとに一意のソルトがハッシュ化された+ソルト化されたパスワードと共にデータベースに格納される必要があることを明確にします。
私がソルティングについて読んだ記事を誤解していますか、それともDrupalは、便宜上誤った慣行を使用しているのですか、それとも記事が間違っているのですか、それとも他に何かありますか?
他のCMSをDrupal=に移行し、ユーザーアカウントを移動した経験があります。Drupalのパスワードアルゴリズムは非常に優れています。
Settings.phpで参照しているソルトは、パスワードには使用されません。 drupal_hash_saltソルトは、Cookieなどの生成に使用されます。したがって、負荷分散された設定の場合、すべてのWebサーバーで同じに保つ必要があると表示される理由。
パスワードの生成は、openssl phpライブラリを使用してランダムに生成されたソルトでSHA512アルゴリズムを使用します(mt_Randまたは他の弱い乱数ジェネレーターではありません)。
パスワードの生成について詳しく知りたい場合は、ここから DrupalのAPIドキュメント を読んでください。
これを生成する関数で、「プライベート」関数を呼び出して新しいパスワードソルト( _password_generate_salt()
)を生成していることがわかります。次に、他の多くのプライベートなカスタムDrupal関数を呼び出します(これは長いラビットホールです)。
したがって、一般にDrupalに使用されるパスワードスキームは非常に深くネストされているため、PHP関数は「弱い」と見なされます)を使用しません。