【发布时间】:2015-08-18 20:18:38
【问题描述】:
我的问题很简单,但我找不到任何关于它的更新信息。
基本上,我有一个 phonegap 应用程序:
- HTML 文件
- JS 文件
- ..
以及 OVH 服务器上的 php 文件。
当应用程序需要对数据库进行 CRUD(mysql-ovh)时,通过 ajax 调用完成。
例如:
if(confirm("Delete record ?")){
params = {
"action": "delete_record",
"record_id": record_id
}
ajax_post(params, function(data){
if(data.status == 'success') {
alert(data.msg);
$.mobile.changePage( "aRandomPage.html");
} else {
alert("erreur : " + data.msg);
}
});
}
注意:ajax_post 只是一个个性化的函数,做一个简单的 ajax 发布,所以我不必写所有的信息,比如文件 URL 等等。
问题是任何人都可以编辑 javascript 文件(通过解压缩 .apk、.xap 或通过控制台,如果它是 Web 版本)并将参数转换为强>
params = {
"action": "delete_record",
"record_id": 5
}
并删除第 5 号记录(这不是他的,他不应该这样做)或他想要的任何记录,这样做,他可以删除所有记录。
有没有一种我不知道的经典方法来处理这个问题?
我想出了一个解决方案: 我可以将密码存储在storage.setItem("") 中,每次通过ajax 访问数据库时,我都会传递用户ID(已经存储在存储中)和密码。 然后我会在 PHP 端检查密码和 ID 是否匹配(有点登录)。
这样,我可以确定发送请求的用户是记录的所有者并且可以删除它。 (我看不出有人如何绕过它,因为它需要用户的密码)
缺点是在客户端存储密码,不确定它是否更好..
提前致谢,
【问题讨论】:
标签: javascript php ajax security