如何验证与服务器的连接来自具有 Ionic/AngularJS/Cordova 的应用程序?

Posted

技术标签:

【中文标题】如何验证与服务器的连接来自具有 Ionic/AngularJS/Cordova 的应用程序?【英文标题】:How to verify that a connection to the server comes from an app with Ionic/AngularJS/Cordova? 【发布时间】:2014-08-09 06:36:04 【问题描述】:

需要创建一个系统,包括:

    在连接到后端服务器的智能手机(iosandroid)中运行的应用程序。 提供 Web 服务 (REST) 的后端服务器。

需要一种方法来验证后端服务器接收的互联网流量是否来自应用程序。 (为什么需要这个?因为应用程序最多只能每小时连接到后端服务器,所以后端服务器不会因过多的请求而过载)。

如果在 Cordova 中使用 Ionic 和 AngularJS,如何实现?

到目前为止,建议的解决方案是在应用程序中嵌入数字证书,并且该数字证书用于与服务器进行验证(这个想法就像在浏览器中运行的 Java Applet 并在本地计算机与服务器验证)。

这可以用 Ionic/AngularJS/Cordova 完成吗?我查看了文档和许多视频,但找不到任何相关信息。

感谢您的任何回答。

【问题讨论】:

您到底想防止什么?通过其他类型的 HTTP 客户端恶意使用?未经授权的使用?在不适当的时间使用应用程序? “你到底想防止什么?”,是为了防止从计算机访问后端 Web 服务,因为如果发生这种情况,后端服务器可能会被请求淹没,因为你可以运行非常频繁地发出请求的计算机中的脚本。这个想法是后端负载轻,后端负载越轻,运行成本就越低。我解释清楚了吗? 设备如何安装/下载应用程序?网上有吗? 将有 2 个应用程序:A)。对于 iOS 和 B)。对于安卓。适用于 iOS 的应用程序可在 Apple App Store 上找到,适用于 Android 的应用程序可在 Google Play 上找到。建议将数字证书(嵌入在应用程序中)在应用程序上加密,以防有人反编译它们。 Android 应用也会被混淆。 【参考方案1】:

您可以检查 http 请求标头并使用 User-Agent 字段中的信息进行过滤。

【讨论】:

以上是关于如何验证与服务器的连接来自具有 Ionic/AngularJS/Cordova 的应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

openid connect owin 如何验证来自 Azure AD 的令牌?

如何自动断开空闲用户与 MS Access DB 的连接?

具有安全用户身份验证和注册第三方应用程序的简单 PHP REST 服务器

如何调试 Stanza.js 身份验证?

使用来自 Spring Security 的密码来验证 REST 调用

验证 IPN 呼叫来自 PayPal?