Iis 验证用户和远程用户cgi变量之间的差异

Iis 验证用户和远程用户cgi变量之间的差异,iis,coldfusion,railo,openbd,Iis,Coldfusion,Railo,Openbd,文档对此并不完全清楚-这些变量之间有区别吗?至少在IIS上,它们看起来是相同的,但如果在其他服务器上可能不同,我不想依赖于这一点。我相当肯定REMOTE\u USER是标准的CGI变量 根据本页,它们是相同的: 根据Adobe ColdFusion文档,它们是相同的 查看openbd源代码,remote_用户和auth_用户映射到同一个键,因此它返回相同的值 查看railo源代码,我不太了解正在发生什么,但它似乎正在设置remote\u user,我不确定是否在任何地方设置了auth\u us

文档对此并不完全清楚-这些变量之间有区别吗?至少在IIS上,它们看起来是相同的,但如果在其他服务器上可能不同,我不想依赖于这一点。

我相当肯定REMOTE\u USER是标准的CGI变量

根据本页,它们是相同的:

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

查看openbd源代码,remote_用户和auth_用户映射到同一个键,因此它返回相同的值

查看railo源代码,我不太了解正在发生什么,但它似乎正在设置remote\u user,我不确定是否在任何地方设置了auth\u user


如果您正在设计一个与coldfusion、railo和openbd兼容的应用程序,那么使用远程用户似乎更安全。也许其他人可以发表评论,因为我不需要花时间深入研究就无法完全理解代码。

根据我的经验,CGI变量在Web服务器(Apache、IIS、JRun等)之间,甚至在它们的版本之间往往不同。当基于CGI变量时,唯一安全的方法是检查在您的开发、阶段、生产(等)服务器上显示的值。

为了安全起见,请坚持远程用户,因为它是CGI/1.0规范(见此处)中定义的值


AUTH_用户似乎随着时间的推移潜入了

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

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

重新启动发动机 RewriteCond%{REMOTE_USER}(.) 重写规则[E=AUTH_用户:%1]


这里有更多信息:

Adobe的文档似乎建议远程用户是首选。从apache的角度来看,这个变量并不经常可用,我需要它来运行ldap SSO!我认为这个变量来自用于访问服务器url的笔记本电脑或设备,而不是url所在的服务器,这对吗。例如,运行phpinfo();在所说的笔记本电脑上请求服务器上的这个脚本,这个变量应该来自哪里?谢谢你帮助我更多地理解这个难以捉摸的话题。