我有一个网站,我希望它只能由授权的客户/浏览器访问(例如,有证书)。
这个想法是用户只能在他们办公室的计算机上访问网页(位于不同的地理区域,并且他们是不同的公司,所以我无法检查IP或手动安装某些东西)。
我在考虑一些可安装的私钥证书或类似的东西。
我有什么选择?
编辑:
我正在使用 PHP
我有一个网站,我希望它只能由授权的客户/浏览器访问(例如,有证书)。
这个想法是用户只能在他们办公室的计算机上访问网页(位于不同的地理区域,并且他们是不同的公司,所以我无法检查IP或手动安装某些东西)。
我在考虑一些可安装的私钥证书或类似的东西。
我有什么选择?
编辑:
我正在使用 PHP
在另一个答案中有一个非常有趣的用例,使用客户端证书:
为什么 BBC 网站总是要求提供个人证书,我如何避免将其泄露?
另一个快速而简单的选择可能是实施 VPN 并将问题的域从 PHP 转移到系统管理。如果将来您不仅需要授予对网站的访问权限,还需要授予对其他资源(例如共享文件夹等)的访问权限,这可能会很有用。
说来话长,无法发表评论,因此请在此处留下链接 Using SSL Client Certificates with PHP
你也可以看看 apache SSLRequire Directive可能有点分类故事
还有 PHP OpenSSL 模块 php.net/openssl
围绕这个问题有很多东西
在服务器上,很容易检查每个 HTTP 请求的User-Agent标头(在您的情况下是标头)并重定向到一个登录页面,该页面解释了为什么不能使用浏览器以及支持哪些浏览器。
您需要安装一种身份验证形式来验证来自未经授权的客户端的请求。在某些情况下,在每个客户端上安装 X.509 证书可能是一种选择,但听起来确实像是一个维护问题。提供登录功能可能会更好,为此存在各种解决方案。
限制对 Web 浏览器(用户代理)的访问是很容易使用诸如篡改数据之类的工具来操作的。您可以更改标头以使其看起来像请求来自您想要的任何浏览器。如果您想确保他们只能从办公室访问该网站(如果这是一个位置),您可以根据 IP 地址限制访问。除此之外,我认为您将不得不使用某种场景,在客户端上安装证书以确认他们是谁。