将URL中的用户名和密码传递给PHP页面?

时间:2011-11-22 00:35:24

标签: php login

我在本地网络上部署了一个简单的基于PHP的应用程序(http://www.bigprof.com/appgini/)。我想要一种方法来实现用户自动登录的方式。安全性不是问题。是否可以修改登录页面以接受http://user:pass@app.server.lan/

之类的内容

This is the source of the login page,如果有帮助的话。

非常感谢任何帮助。

4 个答案:

答案 0 :(得分:4)

PHP基础身份验证凭据在$_SERVER superglobal in the keys PHP_AUTH_USER and PHP_AUTH_PW.

中可用

来自http://php.net/manual/en/features.http-auth.php

if (!isset($_SERVER['PHP_AUTH_USER'])) {
    header('WWW-Authenticate: Basic realm="My Realm"');
    header('HTTP/1.0 401 Unauthorized');
    echo 'Text to send if user hits Cancel button';
    exit;
} else {
    echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
    echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
}

有关更复杂的身份验证方法,请查看

答案 1 :(得分:3)

http://user:pass@app.server.lan/正在使用htaccess auth

代替它,你可以使用,

http://app.server.lan/?user=user&pass=pass

登录后重定向到

http://app.server.lan/

<强> .htacccess

AuthUserFile /path/to/your/password/file/.htpasswd
AuthGroupFile /dev/null
AuthName "Members Area"
AuthType "Basic"

<Limit GET POST>
require valid-user
</Limit>

答案 2 :(得分:0)

自动登录网站的可接受方式是使用“记住我”功能。使用cookies。你需要帮助来实现它吗?

安全总是一个问题,特别是如果你共享托管(你可以妥协整个服务器)。

答案 3 :(得分:0)

回应@ AaronJAnderson关于对另一种解决方案开放的评论我想建议:

http://alpho011.hubpages.com/hub/Use-Windows-Login-in-PHP-Applications

当然,假设您使用的是基于Windows的网络,拥有域和正确的网络设置,并且可以访问LDAP(以及以后的Active Directory,如果有的话)

这篇文章不是很长,它有代码;希望您可以调查一下,因为即使您在安全的网络域上,在URL中发布敏感信息仍然会在对等级别上发生危险.. :(

[编辑]回应@ AaronJAnderson关于整合的评论:

创建一个登录表单以接受用户的用户名和密码,并在提交表单后,使用ldap_connect连接到您的域名。然后,如果成功,请使用ldap_bind提交用户名(使用@whateverdomain向域附加域名)和密码到你的ldap主机(如果你没有这个信息,你可以向你的系统/服务器管理员寻求帮助) - 如果你成功那么你就是确认用户提供了正确的用户名和密码。它主要出现在文章中,但我也在ldap_connectldap_bind上放置了链接。我希望这可以提供帮助。