首页 > 解决方案 > 从 PHP 验证 HTTP 身份验证?

问题描述

当我不想为自己构建登录系统时,我会在“管理”使用页面(我是唯一的管理员)上使用大量 HTTP 身份验证。它运行良好,部分原因是我是 Mac/Safari 用户,而 Safari 可以透明地记住并应用 HTTP Auth 密码。页面只是正常加载,就像您甚至没有使用身份验证一样。

这导致....我使用身份验证吗?我不想不小心让我的网络服务器的一些非常敏感的部分敞开。

这让我想到了这个想法。我可以验证$_SERVER['AUTH_TYPE']并使用它来阻止访问吗?像这样的东西,靠近每一页的顶部:

if (($_SERVER['AUTH_TYPE'] !== "Basic") and ($_SERVER['AUTH_TYPE'] !== "Digest"))
{ echo "HTTP Authentication Warning!"; exit; }

或者我想一个更简单的isset($_SERVER['AUTH_TYPE']). 这似乎是一种安全、简单且可靠的方式,可以为经过身份验证的页面提供一些额外的保护。有了这个,如果有任何问题,我会很快发现。

或者我想更具体地问这个问题:使用 HTTP 身份验证时,你总是得到一个 AUTH_TYPE 标头吗?即使您未通过身份验证,是否有办法欺骗并强制使用 AUTH_TYPE 标头?但是也许在您的请求中添加一个额外的标头?

标签: phphttp-authentication

解决方案


推荐阅读