如何只允许授权的浏览器访问网站?

信息安全 tls 证书 网页浏览器 openssl
2021-08-14 11:07:17

我有一个网站,我希望它只能由授权的客户/浏览器访问(例如,有证书)。

这个想法是用户只能在他们办公室的计算机上访问网页(位于不同的地理区域,并且他们是不同的公司,所以我无法检查IP或手动安装某些东西)。

我在考虑一些可安装的私钥证书或类似的东西。

我有什么选择?

编辑:

我正在使用 PHP

4个回答

在另一个答案中有一个非常有趣的用例,使用客户端证书:

为什么 BBC 网站总是要求提供个人证书,我如何避免将其泄露?

另一个快速而简单的选择可能是实施 VPN 并将问题的域从 PHP 转移到系统管理。如果将来您不仅需要授予对网站的访问权限,还需要授予对其他资源(例如共享文件夹等)的访问权限,这可能会很有用。

说来话长,无法发表评论,因此请在此处留下链接 Using SSL Client Certificates with PHP

你也可以看看 apache SSLRequire Directive可能有点分类故事

还有 PHP OpenSSL 模块 php.net/openssl

围绕这个问题有很多东西

在服务器上,很容易检查每个 HTTP 请求的User-Agent标头(在您的情况下是标头)并重定向到一个登录页面,该页面解释了为什么不能使用浏览器以及支持哪些浏览

您需要安装一种身份验证形式验证来自未经授权的客户端的请求。在某些情况下,在每个客户端上安装 X.509 证书可能是一种选择,但听起来确实像是一个维护问题。提供登录功能可能会更好,为此存在各种解决方案。

限制对 Web 浏览器(用户代理)的访问是很容易使用诸如篡改数据之类的工具来操作的。您可以更改标头以使其看起来像请求来自您想要的任何浏览器。如果您想确保他们只能从办公室访问该网站(如果这是一个位置),您可以根据 IP 地址限制访问。除此之外,我认为您将不得不使用某种场景,在客户端上安装证书以确认他们是谁。