[英]Secure Connection to LDAP Server
我正在使用哈希來加密和解密我發送給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服務器,提供正確的憑據輸入; 所以這不是問題。 我悄悄地從安全方面詢問,沒有我的安全知識,我不希望以任何形式或形式妥協數據或服務器,因此為什么這是在生產階段並且只有一個用戶可以訪問我自己。
我很害怕,這完全沒有意義。
在建立與服務器的連接方面,這並沒有為您提供任何額外的安全性,因為密碼仍以其解密形式傳輸到服務器。 這樣做的唯一方法是在源代碼中混淆密碼 - 我說“混淆”而不是“加密”,因為解密密碼到源文本的所有必要信息也包含在源代碼中。
那么這是使用TCP協議安全連接到我的LDAP服務器的有效方法嗎?
不可以。如果您想要安全連接,則需要使用LDAP over SSL。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.