Php 是否考虑';远程用户';$服务器';安全';?
定义Php 是否考虑';远程用户';$服务器';安全';?,php,apache,authentication,iis,cgi,Php,Apache,Authentication,Iis,Cgi,定义REMOTE\u USERserver属性,该属性包含经过身份验证的用户的名称 例如,在Apache上,这可能通过.htpasswd身份验证提供,而在IIS上,这可能通过Active Directory处理。在任何一种情况下,web服务器都会处理身份验证,如果身份验证成功,则会将经过身份验证的用户的名称传递回PHP。(如果失败或取消,脚本将永远不会运行。) 我的问题是:我们能依赖这个变量吗?i、 e.如果它存在(我猜是非空的),是否可以安全地假设身份验证已成功通过,并且提供的名称是用于身份验
REMOTE\u USER
server属性,该属性包含经过身份验证的用户的名称
例如,在Apache上,这可能通过.htpasswd身份验证提供,而在IIS上,这可能通过Active Directory处理。在任何一种情况下,web服务器都会处理身份验证,如果身份验证成功,则会将经过身份验证的用户的名称传递回PHP。(如果失败或取消,脚本将永远不会运行。)
我的问题是:我们能依赖这个变量吗?i、 e.如果它存在(我猜是非空的),是否可以安全地假设身份验证已成功通过,并且提供的名称是用于身份验证的名称
特别是,我担心在没有进行身份验证的情况下,是否有可能将此服务器属性注入我的PHP脚本,或者欺骗该值,使其包含通过身份验证的用户名以外的内容
我们可以依赖这个变量吗
是的,您可以依赖服务器的正确配置
我担心是否有可能将这个服务器属性注入到我的PHP脚本中
可以对其进行欺骗,但只能从服务器端进行。例如,通过如下接入线路:
SetEnv REMOTE_USER foo
或者直接使用PHP,如:
$_SERVER['REMOTE_USER'] = 'foo';
因此,如果攻击者可以远程更改您的.htaccess文件或PHP源代码,那么用户ID欺骗是您的最小问题