Передать имя пользователя и пароль в URL на страницу PHP? - PullRequest
3 голосов
/ 22 ноября 2011

Я развернул простое приложение на основе PHP (http://www.bigprof.com/appgini/) в моей локальной сети. Мне нужен способ реализовать способ автоматического входа пользователей в систему. Безопасность не является проблемой. можно изменить страницу входа, чтобы принять что-то вроде http://user:pass@app.server.lan/?

Это источник страницы входа в систему , если это поможет.

Любая помощь будет принята с благодарностью.

Ответы [ 4 ]

4 голосов
/ 30 ноября 2011

Базовые аутентификационные данные HTTP доступны в PHP в виде $_SERVER суперглобального ключа PHP_AUTH_USER и 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>";
}

Для более сложных способов проверки подлинности, проверьте

3 голосов
/ 22 ноября 2011

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>
0 голосов
/ 22 ноября 2011

В ответ на комментарий @ 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_connect и ldap_bind. Я надеюсь, что это может помочь.

0 голосов
/ 22 ноября 2011

Принятый способ автоматического входа на сайт - это функция «запомнить меня».Используйте куки для этого.Вам нужна помощь для его реализации?

И безопасность всегда является проблемой, особенно если вы разделяете хостинг (вы можете поставить под угрозу весь сервер).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...