Документы не совсем ясны по этому поводу - есть ли разница между этими переменными? По крайней мере, в IIS они кажутся идентичными, но я не хочу полагаться на это, если на других серверах они могут отличаться.
Разница между переменными cgi AUTH_USER и REMOTE_USER
Ответы (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. Может быть, кто-то еще может прокомментировать, потому что я не полностью понимаю код, не тратя время на его глубокое изучение.
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/
Я почти уверен, что REMOTE_USER — это стандартная переменная CGI.
Согласно этой странице, они одинаковы: http://livedocs.adobe.com/coldfusion/6/CFML_Reference/Expressions5.htm
чтобы быть в безопасности, придерживайтесь REMOTE_USER, поскольку он определен в спецификации CGI/1.0 (находится здесь http://www.ietf.org/rfc/rfc3875)
AUTH_USER, кажется, пробрался через какое-то время
По моему опыту, переменные CGI, как правило, различаются между веб-серверами (Apache, IIS, JRun и т. д.) и даже между их версиями. Единственная безопасная ставка, основанная на переменной CGI, — это проверить, какие значения отображаются на ваших серверах разработки, сцены, производства (и т. д.).