我们正在开发基于网络的内部应用程序,用于查看数据报告,同时针对智能手机和平板电脑。我们的客户询问我们是否有可能只有某些设备才能访问内容。因此,我们使用基于 javascript/HTML5 的技术,我们无法读取唯一 ID,例如 IMEI 或设备 uuid。另一方面,我们可以使用 ASP、PHP 等服务器技术来获得成功。
我有几个想法不会导致想要的结果(这里讨论的一个:Persistent client-side web storage)。
我想知道您是否有任何想法只允许某些设备访问网站?
我们正在开发基于网络的内部应用程序,用于查看数据报告,同时针对智能手机和平板电脑。我们的客户询问我们是否有可能只有某些设备才能访问内容。因此,我们使用基于 javascript/HTML5 的技术,我们无法读取唯一 ID,例如 IMEI 或设备 uuid。另一方面,我们可以使用 ASP、PHP 等服务器技术来获得成功。
我有几个想法不会导致想要的结果(这里讨论的一个:Persistent client-side web storage)。
我想知道您是否有任何想法只允许某些设备访问网站?
AFAIK 你只有用户代理可以工作,也许你可以返回一些 Javascript 值,作为指纹识别时使用的值。
用户代理应该给你很多东西,但它很容易被欺骗。Javascript 值也可以。
我认为没有一种安全的方法可以做你想做的事。但是话又说回来,我不知道你是否真的想要它那么安全。
您还可以做的不是 100% 基于浏览器,而是创建一个移动应用程序。(比如在Apple AppStore / Google Play Store)这里我认为你可以请求访问更多的变量来识别机器类型。
这种访问控制只有在其之上实施传统的登录方法时才会是“安全的”,即用户(1)需要使用用户名和密码登录,但(2)他们只能在特定设备上这样做。
步骤 (1) 需要使访问基本上“安全”,而步骤 (2) 只会让那些几乎不知道自己在做什么的人更难闯入您的应用程序。
(如果没有第二步,人们可以在知道其 URL 时尝试暴力破解登录表单,而无需嗅探任何其他网络流量。)
您当然可以指纹用户代理 (UA) 字符串和可能的其他 HTTP 标头,假设移动浏览器应用程序不会不断更新,因此不会不断更改其 UA 字符串(这可能很麻烦),并检查服务器端.
您还可以为目标平台创建一个简单的、非常简单的本机移动应用程序,仅包含平台的默认 Web 浏览器小部件,并将您的应用程序的 URL 内置作为默认页面。
然后,您可以控制 URL 和可能的 HTTP 标头,并添加特殊的、秘密的身份验证标头或 URL 参数(例如设备的 IMEI),您可以在服务器端对其进行检查。
如果您以 Android 为目标,则不一定需要依赖 Google Play;您还可以从您自己的一台服务器分发 APK 文件,使该应用程序仅对目标受众可用。
php-mobile-detect
在这里尝试轻量级:(服务器端检查总是更好) https://code.google.com/p/php-mobile-detect/