使用PHP安全地将密码发送到LDAP服务器

时间:2015-04-13 16:55:18

标签: php ssl ldap

我要做的是设置登录屏幕。我收集用户的凭据并使用ldap服务器对其进行验证,然后才允许用户进行测验。

<?php
session_start();
$user = $_POST['user'];
$domain = 'DOMAIN';
$password = $_POST['password'];
$ldapserver="ldap.example.server";
$ldapport=389;
$ldap = ldap_connect($ldapserver,$ldapport);

if ($bind = @ldap_bind($ldap,"{$user}@{$domain}", $password)){
    $_SESSION["user"] = '$user';
    header('Location: quiz.php');
}
else {
    header('Location: login.html');
}

?>

当我使用wireshark来嗅探数据包时,我可以清楚地看到用户名和密码。有没有办法绑定到LDAP服务器而不用纯文本发送密码?该网站没有https。所有者不想购买SSL证书,也不想对自签名证书感兴趣。

1 个答案:

答案 0 :(得分:1)

您的ldap服务器是否支持ldaps并拥有证书?这将是最简单的方法,您的网站将不需要证书。您只是稍微更改了代码。假设您的服务器使用默认的ldaps端口:

$ldapserver = 'ldaps://ldap.example.server';
$ldapport = 636;