我要做的是设置登录屏幕。我收集用户的凭据并使用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证书,也不想对自签名证书感兴趣。
答案 0 :(得分:1)
您的ldap服务器是否支持ldaps并拥有证书?这将是最简单的方法,您的网站将不需要证书。您只是稍微更改了代码。假设您的服务器使用默认的ldaps端口:
$ldapserver = 'ldaps://ldap.example.server';
$ldapport = 636;