AUTH_USER和REMOTE_USER cgi变量之间的区别

时间:2009-05-12 14:14:05

标签: iis coldfusion railo openbd

文档在这方面并不完全清楚 - 这些变量之间是否存在差异?在IIS上,至少它们看起来是相同的,但如果它在其他服务器下可能不同,我不想依赖它。

5 个答案:

答案 0 :(得分:7)

根据Adobe ColdFusion文档,它们是相同的。

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

查看openbd源代码,remote_user和auth_user被映射到同一个键,因此返回相同的值。

查看railso源代码,我不太了解发生了什么,但似乎是在设置remote_user,我不确定是否在任何地方都设置了auth_user。

如果您正在设计与coldfusion,railo和openbd兼容的应用程序,则使用remote_user似乎更安全。也许其他人可以评论,因为我没有花时间深入调查,所以我不完全理解代码。

答案 1 :(得分:3)

REMOTE_USER和AUTH_USER在AdobeCF / IIS中是相同的,但不在AdobeCF / Apache上。使用AdobeCF / Apache时,AUTH_USER将为空。

因此最好使用REMOTE_USER变量进行编码。如果您发现自己正在处理在Apache中引用AUTH_USER的代码,那么有一种方法可以使用mod_rewrite使Apache填充该变量。这将导致Apache将REMOTE_USER复制到AUTH_USER:

RewriteEngine on RewriteCond%{REMOTE_USER}(。) RewriteRule。 - [E = AUTH_USER:%1]

此处有更多信息:http://www.stillnetstudios.com/copying-env-variables-in-apache/

答案 2 :(得分:2)

我很确定REMOTE_USER是标准的CGI变量。

根据这个页面,它们是相同的: http://livedocs.adobe.com/coldfusion/6/CFML_Reference/Expressions5.htm

答案 3 :(得分:2)

安全方面坚持使用REMOTE_USER,因为它是CGI / 1.0规范中定义的那个(在这里找到http://www.ietf.org/rfc/rfc3875

AUTH_USER似乎随着时间的推移而悄悄话

答案 4 :(得分:1)

根据我的经验,CGI变量在Web服务器(Apache,IIS,JRun等)之间,甚至在它们的版本之间往往不同。在基于CGI变量的基础上,唯一可靠的选择是检查开发,阶段,生产(等)服务器上显示的值。