文档对此并不完全清楚-这些变量之间有区别吗?至少在 IIS 上它们看起来是相同的,但如果它在其他服务器下可能不同,我不想依赖它。
5 回答
根据 Adobe ColdFusion 文档,它们是相同的。
http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=Expressions_8.html
看openbd源码,remote_user和auth_user映射到同一个key,所以返回同一个值。
查看 railo 源代码,我不太了解发生了什么,但它似乎正在设置 remote_user,我不确定是否在任何地方设置了 auth_user。
如果您正在设计一个与coldfusion、railo 和openbd 兼容的应用程序,使用remote_user 似乎更安全。也许其他人可以发表评论,因为我没有花时间深入调查就无法完全理解代码。
REMOTE_USER 和 AUTH_USER 在 AdobeCF/IIS 中是相同的,但在 AdobeCF/Apache 中不同。使用 AdobeCF/Apache 时,AUTH_USER 将为空。
因此最好使用 REMOTE_USER 变量进行编码。如果您发现自己正在编写在 Apache 中引用 AUTH_USER 的代码,有一种方法可以让 Apache 使用 mod_rewrite 填充该变量。这将导致 Apache 将 REMOTE_USER 复制到 AUTH_USER 中:
RewriteCond %{REMOTE_USER} (. ) RewriteRule 上的 RewriteEngine。- [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 变量往往会在 Web 服务器(Apache、IIS、JRun 等)之间甚至在它们的版本之间有所不同。当基于 CGI 变量时,唯一安全的选择是检查您的开发、舞台、生产(等)服务器上显示的值。