【发布时间】:2012-09-23 22:39:01
【问题描述】:
我正在一个 php 站点上设置基本身份验证,并在 php 手册上找到了显示设置的 this 页面。标题中的“领域”是什么意思?
header('WWW-Authenticate: Basic realm="My Realm"');
是请求的page页面吗?
【问题讨论】:
标签: http basic-authentication digest-authentication
我正在一个 php 站点上设置基本身份验证,并在 php 手册上找到了显示设置的 this 页面。标题中的“领域”是什么意思?
header('WWW-Authenticate: Basic realm="My Realm"');
是请求的page页面吗?
【问题讨论】:
标签: http basic-authentication digest-authentication
From RFC 1945 (HTTP/1.0) 和 RFC 2617 (HTTP Authentication referenced by HTTP/1.1)
realm 属性(不区分大小写)对所有文件都是必需的 发出挑战的身份验证方案。领域价值 (区分大小写),结合规范的根 URL 被访问的服务器,定义了保护空间。这些领域 允许将服务器上的受保护资源划分为一组 保护空间,每个都有自己的认证方案和/或 授权数据库。领域值是一个字符串,一般 由源服务器分配,可能有额外的语义 特定于身份验证方案。
简而言之,同一领域中的页面应该共享凭据。如果您的凭据适用于域 “我的域” 的页面,则应假定相同的用户名和密码组合适用于具有相同域的另一个页面。
【讨论】:
可以将领域视为使用凭据的区域(不是特定页面,它可以是一组页面);这也是浏览器弹出登录窗口时会显示的字符串,例如
请输入
<realm name>的用户名和密码:
当领域更改时,如果浏览器没有该特定领域的凭据,它可能会显示另一个弹出窗口。
【讨论】:
.htaccess 按层次结构划分,因此某个目录下的任何内容都可以被赋予相同的领域。
根据RFC 7235,realm 参数保留用于定义保护空间(需要凭据的页面或资源集),并且它被身份验证方案用于指示保护范围。
有关更多详细信息,请参阅下面的引用(RFC 中没有突出显示):
“领域”身份验证参数保留供使用 希望指明保护范围的身份验证方案。
保护空间由规范的根 URI(方案 和有效请求 URI 的权限组件) 被访问的服务器,结合 领域值(如果存在)。 这些领域允许受保护的 将服务器上的资源划分为一组保护 空间,每个空间都有自己的身份验证方案和/或授权 领域值是一个字符串,通常由 源服务器,它可以具有特定于 认证方案。请注意,一个响应可以有多个 具有相同身份验证方案但具有不同领域的挑战。 [...]
注意 1:HTTP 身份验证的框架目前由 RFC 7235 定义,它更新了 RFC 2617 并使 RFC 2616 过时。
注意 2:realm 参数不再总是需要 challenges。
【讨论】: