将网站限制为单个浏览器(用户代理)的最佳方法?

Mat*_*ift 2 security .htaccess client user-agent

所以我正在构建我自己的 Web 应用程序类型的项目。但是,我只希望可以通过我的 Web 客户端查看该网站。我已将 Web 客户端的用户代理设置设置为自定义名称 ( MySecretClient),现在尝试仅允许从具有用户代理的浏览器访问MySecretClient. 其他所有人都被重定向。

有没有更好的方法来做到这一点?

Ame*_*aut 5

与许多网络技术问题一样,有一个严格的理论答案和一个“足以满足您可能想要的”答案: 严格的答案是:您不能,它不能那样工作。由于客户端可以发送它想要的任何用户代理字符串,因此您无法知道任何给定请求背后实际上是什么客户端。

此处记录了“足够好”的答案,该答案将阻止绝大多数用户使用“错误”的用户代理查看您的网站:

http://www.htaccesstools.com/articles/detect-and-redirect-iphone/

来自链接的相关 .htaccess 块,它将来自 iPhone 用户代理的请求重定向到 iPhone 特定站点是:

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} iPhone
RewriteCond %{REQUEST_URI} !^/my-iPhone-site/ 
RewriteRule .* /my-iPhone-site/ [R]
Run Code Online (Sandbox Code Playgroud)

您可以在您的情况下修改以使用错误的客户端重定向用户:

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !^MySecretClient$
RewriteRule .* <URL of a tropical island paradise> [R]
Run Code Online (Sandbox Code Playgroud)

还有另外一个答案,什么可能是你在做这个打算。如果这是您的应用程序安全策略的一部分,那是个坏主意!这就是所谓的“通过默默无闻的安全性”,并且是应该避免的成熟的反模式。除了最随意的软件攻击者之外,任何人都会很快意识到发生了什么,找出您的应用程序打算在哪个客户端上运行,并对其进行欺骗。