如何提高科尔多瓦应用程序的安全性
How to increase Cordova app 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;
}
}
*我需要确保没有人可以在没有应用程序的情况下直接访问我的登录URL。目前,我正在检查请求是否包含设备ID。并阻止超过 5 次失败尝试的设备 ID。
* 其次,我需要确保我的登录网址对用户隐藏。目前,我的登录功能位于服务器上托管的不同.JS文件中。但是APK可以很容易地反编译,HTML文件告诉我.JS文件的位置,该文件可以很容易地下载并使用几个在线解密器解密。
我搜索了很多,发现了几个安全提示,但由于缺乏知识而没有正确获得它们。请建议我如何向逆向工程师隐藏我的源代码。如果不可能,那么我该如何保护我的代码,以便没有人可以使用它。
一个巨大的问题是您使用http将登录凭据发送到服务器。 任何在网络上捕获数据包的人都可以获取用户的登录信息和帐户数据。 始终始终始终使用 https。 至于防止来自未使用应用程序的客户端的请求,您可以考虑将某种加密签名的标记添加到只有应用程序才能正确生成的请求有效负载中。 我不确定我是否愿意在这里建议一个特定的方案,但希望一些更精通安全性的堆栈溢出用户可以提供一些建议。 对于您的最后一个问题,隐藏您的登录 URL 将是一个失败的原因,但是如果您的服务器上有一些处理登录验证的.js文件,并且您不希望对手能够检查它,只需禁止它。 如果您在客户端进行任何登录验证,那么您就做错了。
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- Emberjs应用程序加载在除Index之外的所有路由上
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- angular 1.5应用程序中的导航栏
- 在Web应用程序中使用Highcharts javascript
- angularjs+rails应用程序中未显示模板
- 使用acess代币登录Facebook,并通过网络应用程序离线发布
- Node.js应用程序:正确的部署和安全性
- 基于Rails的javascript应用程序的安全性:如何在渲染的javascript中验证用户的权限
- 如何在整个web应用程序堆栈中利用Haskell类型的安全性
- 用户创建的应用程序的安全性
- 如何提高科尔多瓦应用程序的安全性
- 对此应用程序实施安全性
- Javascript是在web应用程序中提供安全性的好选择吗
- 基于Javascript的应用程序中的安全性-刷新用户哈希
- JS+IE9(默认安全性):自动重定向到clickonce应用程序
- 如何加强单页web应用程序的安全性
- 从远程服务器检索移动应用程序上的JSONP需要什么样的安全性?