Разница между переменными cgi AUTH_USER и REMOTE_USER

Документы не совсем ясны по этому поводу - есть ли разница между этими переменными? По крайней мере, в IIS они кажутся идентичными, но я не хочу полагаться на это, если на других серверах они могут отличаться.


person Goyuix    schedule 12.05.2009    source источник


Ответы (5)


Согласно документации Adobe ColdFusion, они одинаковы.

http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=Expressions_8.html

Глядя на исходный код openbd, remote_user и auth_user сопоставлены с одним и тем же ключом, поэтому он возвращает одно и то же значение.

Глядя на исходный код railo, я не совсем понимаю, что происходит, но, похоже, он устанавливает remote_user, и я не уверен, установлен ли где-нибудь auth_user.

Если вы разрабатываете приложение, совместимое с coldfusion, railo и openbd, безопаснее использовать remote_user. Может быть, кто-то еще может прокомментировать, потому что я не полностью понимаю код, не тратя время на его глубокое изучение.

person Jayson    schedule 12.05.2009
comment
Документы Adobe, похоже, предполагают, что remote_user является предпочтительным выбором. - person Jayson; 12.05.2009

REMOTE_USER и AUTH_USER будут одинаковыми в AdobeCF/IIS, но не в AdobeCF/Apache. AUTH_USER будет пустым при использовании AdobeCF/Apache.

Поэтому лучше всего кодировать с использованием переменной REMOTE_USER. Если вы обнаружите, что работаете над кодом, который ссылается на AUTH_USER в Apache, есть способ заставить Apache заполнить эту переменную с помощью mod_rewrite. Это заставит Apache скопировать REMOTE_USER в AUTH_USER:

RewriteEngine на RewriteCond %{REMOTE_USER} (.) RewriteRule . — [E=AUTH_USER:%1]

Здесь есть дополнительная информация: http://www.stillnetstudios.com/copying-env-variables-in-apache/

person Ryan Stille    schedule 09.01.2010

Я почти уверен, что REMOTE_USER — это стандартная переменная CGI.

Согласно этой странице, они одинаковы: http://livedocs.adobe.com/coldfusion/6/CFML_Reference/Expressions5.htm

person Peter Boughton    schedule 12.05.2009

чтобы быть в безопасности, придерживайтесь REMOTE_USER, поскольку он определен в спецификации CGI/1.0 (находится здесь http://www.ietf.org/rfc/rfc3875)

AUTH_USER, кажется, пробрался через какое-то время

person LucasS    schedule 15.05.2009

По моему опыту, переменные CGI, как правило, различаются между веб-серверами (Apache, IIS, JRun и т. д.) и даже между их версиями. Единственная безопасная ставка, основанная на переменной CGI, — это проверить, какие значения отображаются на ваших серверах разработки, сцены, производства (и т. д.).

person Adam Tuttle    schedule 12.05.2009
comment
С точки зрения Apache, эта переменная не всегда доступна, и мне она нужна, чтобы иметь возможность запускать ldap SSO! Прав ли я, думая, что эта переменная исходит от ноутбука или устройства, используемого для доступа к URL-адресу сервера, а НЕ от сервера, на котором размещен URL-адрес. Так, например, запуск phpinfo(); на указанном ноутбуке, запрашивающем этот скрипт на сервере, откуда должна появиться эта переменная? Спасибо, что помогли мне лучше понять эту неуловимую тему. - person landed; 08.11.2013