使用 PHP 安全地将密码发送到 LDAP 服务器
Securely send password to LDAP server using PHP
我想做的是设置一个登录屏幕。在允许用户参加测验之前,我收集了用户的凭据并使用 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 证书,也没有兴趣使用自签名证书。
你的ldap服务器支持ldaps并且有证书吗?那将是执行此操作的最简单方法,并且您的站点不需要证书。您只需稍微更改代码即可。假设您的服务器使用默认的 ldaps 端口:
$ldapserver = 'ldaps://ldap.example.server';
$ldapport = 636;
我想做的是设置一个登录屏幕。在允许用户参加测验之前,我收集了用户的凭据并使用 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 证书,也没有兴趣使用自签名证书。
你的ldap服务器支持ldaps并且有证书吗?那将是执行此操作的最简单方法,并且您的站点不需要证书。您只需稍微更改代码即可。假设您的服务器使用默认的 ldaps 端口:
$ldapserver = 'ldaps://ldap.example.server';
$ldapport = 636;