如何提高科尔多瓦应用程序的安全性

How to increase Cordova app Security

本文关键字:应用程序 安全性 何提高      更新时间:2023-09-26

我正在使用cordova构建一个Android应用程序。此应用程序的用户将能够通过此应用程序登录到远程服务器并接收用户信息。用户将拥有一个钱包,他们可以从此应用程序购买数字产品。

首先,应用程序从用户那里接收电子邮件地址和密码,并将其发送到远程服务器进行身份验证。下面是一个示例:

var did = device.uuid;
if(did!=''){
$.get("http://SERVER.ORG/Login.php?email="+email+"&pass="+pass+"&did="+did, getData);
}else{
alert("Sorry! can't read your deice. Please close the app & restart.");
window.location.href = "index.html";
}

function getData(data) {
 var response = jQuery.parseJSON(data);
 localStorage.status    = response.status;
 localStorage.usr_pin   = response.usr_pin;
 if(localStorage.status==0){
  alert("Invalid Credentials");
 }else{
  localStorage.user_id  = response.client_id;   
  localStorage.user_name    = response.client_name;     
  localStorage.user_phone   = response.client_phone;    
  localStorage.user_balance = response.available_credit;
 }
}

*我需要确保没有人可以在没有应用程序的情况下直接访问我的登录URL。目前,我正在检查请求是否包含设备ID。并阻止超过 5 次失败尝试的设备 ID。

* 其次,我需要确保我的登录网址对用户隐藏。目前,我的登录功能位于服务器上托管的不同.JS文件中。但是APK可以很容易地反编译,HTML文件告诉我.JS文件的位置,该文件可以很容易地下载并使用几个在线解密器解密。

我搜索了很多,发现了几个安全提示,但由于缺乏知识而没有正确获得它们。请建议我如何向逆向工程师隐藏我的源代码。如果不可能,那么我该如何保护我的代码,以便没有人可以使用它

一个巨大的问题是您使用http将登录凭据发送到服务器。 任何在网络上捕获数据包的人都可以获取用户的登录信息和帐户数据。 始终始终始终使用 https。 至于防止来自未使用应用程序的客户端的请求,您可以考虑将某种加密签名的标记添加到只有应用程序才能正确生成的请求有效负载中。 我不确定我是否愿意在这里建议一个特定的方案,但希望一些更精通安全性的堆栈溢出用户可以提供一些建议。 对于您的最后一个问题,隐藏您的登录 URL 将是一个失败的原因,但是如果您的服务器上有一些处理登录验证的.js文件,并且您不希望对手能够检查它,只需禁止它。 如果您在客户端进行任何登录验证,那么您就做错了。