Php 如何仅允许某些设备访问网站

Php 如何仅允许某些设备访问网站,php,javascript,jquery,html,Php,Javascript,Jquery,Html,我们正在开发内部基于web的应用程序,用于在智能手机和平板电脑上查看数据报告。我们的客户向我们询问只有某些设备才能访问内容的可能性。因此,我们使用基于javascript/HTML5的技术,无法读取IMEI或设备uuid等唯一ID。另一方面,我们可以使用ASP、PHP等服务器技术获得成功 我有几个想法不会导致想要的结果(这里讨论的一个:) 我想知道您是否知道只允许某些设备访问网站?AFAIK您只需要处理用户代理,可能还可以返回一些Javascript值,作为指纹识别时使用的值 用户代理应该给你很

我们正在开发内部基于web的应用程序,用于在智能手机和平板电脑上查看数据报告。我们的客户向我们询问只有某些设备才能访问内容的可能性。因此,我们使用基于javascript/HTML5的技术,无法读取IMEI或设备uuid等唯一ID。另一方面,我们可以使用ASP、PHP等服务器技术获得成功

我有几个想法不会导致想要的结果(这里讨论的一个:)


我想知道您是否知道只允许某些设备访问网站?

AFAIK您只需要处理用户代理,可能还可以返回一些Javascript值,作为指纹识别时使用的值

用户代理应该给你很多东西,但它很容易被欺骗。Javascript值也是如此

我不认为有一个安全的方法来做你想做的事。但话说回来,我不知道你是否真的希望它如此安全


你也可以做的是不要100%基于浏览器,而是创建一个移动应用程序。(例如在Apple AppStore/Google Play Store中)在这里,我认为您可以请求访问更多变量以识别机器类型。

在这里尝试轻量级的
php mobile detect
(服务器端检查总是更好)

只有在上面实现传统登录方法,这种访问控制才会“安全”,即,用户(1)需要使用用户名和密码登录,但(2)只能在特定设备上登录

第(1)步要求访问基本上是“安全的”,而第(2)步只会让那些几乎不知道自己在做什么的人更难进入你的应用程序

(如果没有第二步,人们可以在知道登录表单的URL时尝试强行登录表单,而不需要嗅探任何其他网络流量。)

您当然可以在用户代理(UA)字符串和可能的其他HTTP头上提取指纹,前提是移动浏览器应用程序没有不断更新,因此没有不断更改其UA字符串(这可能会很麻烦),并检查服务器端

您还可以为目标平台创建一个简单、非常简单的本机移动应用程序,只包含平台的默认web浏览器小部件,并将应用程序的URL内置为默认页面

然后,您可以控制URL和可能的HTTP头,并添加特殊的、秘密的身份验证头或URL参数(例如,设备的IMEI),您可以在服务器端对此进行检查


如果你的目标是安卓,你不一定需要依赖谷歌游戏;您还可以从自己的服务器分发APK文件,使应用程序仅对目标用户可用。

定义“特定设备”。你控制这些设备吗?是你自己建造的吗?它们是普通电脑吗?等等。恐怕没有一种绝对准确的方法来做到这一点。继续@Quentin的问题。。。“特定设备”是单个物理机器,还是特定类别的设备(如平板电脑、电话、笔记本电脑等),最好使用VPN将设备连接到内部网络。这样,您就可以将它们路由到一个不向公众开放的主机名。@TauWich是一个非常有趣的项目。您提到,您的应用程序需要在智能手机和平板电脑上运行。那么哪里不应该工作呢?谢谢你的告别,我对这个问题了解得越多,我就越怀疑它的可能性。目前正在考虑phoneGap应用程序。我发现你的答案非常有用,带来了新的想法和希望。