ハッシュを使用して、cass コンストラクトに送信するパスワードを暗号化および復号化しています。以下に例を示します。
public static function HashPassword ($Password){
$salt = self::$Salt;
return trim
(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $salt, $Password, MCRYPT_MODE_ECB, mcrypt_create_iv(
mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND))));
}//Get hashed Password
次に、復号化されたprotected static function
protected static function DecryptPassword($Password){
$salt = self::$Salt;
return trim
(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $salt,base64_decode($Password), MCRYPT_MODE_ECB, mcrypt_create_iv(
mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND)));
} // Decrypt the password
次に、次の方法で接続を呼び出しています。
$Connection = LDAP::Connect('LDAPSERVER','LDAPLOGIN','onVidHn5r4WNyxzlDHD8TvUY9AjyiHg+ZC5PoOhIXkU=');
セキュリティ上の理由から、ダミーのパスワードを実装し、サーバーの資格情報を隠しました。
接続機能:
public static function Connect($Host,$Username,$Password){
self::$Host = $Host;
self::$Admin = $Username;
//Assign to global variables to be used throughout this framework
$Password = self::DecryptPassword($Password);
self::$Password = $Password; // Assign the decrypted password
$LDAPServer = ldap_connect($Host);
$Connect = ldap_bind($LDAPServer,$Username,$Password);
if (!$Connect){
die ("Cannot Connect To LDAP Server");
}
}
私の全体的な質問は、これが秘密のソルトを使用して API にパスワードを送信するための有効なセキュリティ方法ですか?
パスワードをプレーンテキストとして入力しないことをお勧めします。
ldap_bind('host','user@server','PlainTextPassword');
上記は一例であり、私の好みでは受け入れられません。
これは、TCP プロトコルを使用して LDAP サーバーに安全に接続するための有効な方法ですか?
この質問のように見えますが、適切な資格情報が入力されていれば、LDAP サーバーに正常に接続できることを確認できます。これは問題ではありません。セキュリティの知識がなくても、データやサーバーを何らかの形で危険にさらしたくないので、セキュリティの観点から単純に尋ねています。したがって、これが生産段階にあり、自分である1人のユーザーのみがアクセスできるのはなぜですか。