如何增加Cordova app安全性

时间:2016-02-20 07:49:59

标签: javascript android cordova security

我正在使用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;
 }
}

*我需要确保没有应用程序直接访问我的登录网址的第一件事。 目前我正在检查请求是否包含设备ID。并且阻止设备ID超过5次尝试失败。

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

我经常搜索并找到了一些安全提示,但由于缺乏知识而无法正常使用。请建议我如何隐藏反向工程师的源代码。如果不可能,那么如何保护我的代码,以便没有人可以使用

1 个答案:

答案 0 :(得分:0)

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