1

OK、クーリエのインストールに非常に奇妙な問題があります..ログインしようとすると、ユーザー名とパスワードが必要ですか? パスワードとして、パスワードと同じプレフィックスを持つ任意の文字列を使用できることを除いて。例:

これが私のパスワードだとしましょう:

#password#

次のパスワードのいずれかで正常にログインできます。

#password#
#password#FOO
#password#BAR

等..

ユーザーデータの保存にmysqlを使用しています。これは私の/etc/courier/authmysqlrcです

MYSQL_SERVER localhost
MYSQL_USERNAME #USER
MYSQL_PASSWORD #PASSWORD
MYSQL_PORT 0
MYSQL_DATABASE mail
MYSQL_USER_TABLE users
MYSQL_CRYPT_PWFIELD password
#MYSQL_CLEAR_PWFIELD password
MYSQL_UID_FIELD 5000
MYSQL_GID_FIELD 5000
MYSQL_LOGIN_FIELD email
MYSQL_HOME_FIELD "/home/vmail"
MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/')
#MYSQL_NAME_FIELD
MYSQL_QUOTA_FIELD quota

どこが問題になる可能性がありますか?よろしくお願いいたします。

4

1 に答える 1

2

問題は、オペレーティング システムのcrypt()機能を使用してパスワードが暗号化されていることです。この機能は、パスワードの最初の 8 文字だけを見て、暗号化されたハッシュを生成します。ここで
説明したように:

8 文字を超えるパスワードを使用している場合、最初の 8 文字が一致する限り、crypt() はそれを有効な一致と呼びます。たとえば、パスワードが「password」であり、暗号化されたハッシュとして htpasswd ファイルに保存されている場合、「passwordX」に対するチェックは、「password」、「password123」などに対するチェックとまったく同じになります。つまり、最初の 8 文字が適切に一致するため、有効なチェックとして返されます。同様に、パスワードが「longpassword」で、「longpass」のみをチェックすると、それも有効として返されます。

于 2013-01-18T21:37:58.183 に答える