我的问题很简单,但我找不到任何有关它的更新信息。
基本上,我有一个手机应用程序:
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或通过控制台,如果它是网络版)并将参数转换为
params = {
"action": "delete_record",
"record_id": 5
}
并删除记录号5 (这不是他的,他不应该)或他想要的任何记录,这样做,他可以删除所有记录。< /强>
有没有一种经典的方法来处理这个我不知道的事情?
我提出了一个解决方案: 我可以将密码存储在storage.setItem("")中,每次通过ajax访问数据库时,我都会传递userid(已经存储在存储中)和密码。 然后我会在PHP端检查密码和ID是否匹配(登录物的种类)。
这样,我确定发送请求的用户是记录的所有者,可以删除它。 (我不知道有人可以绕过它,因为它需要用户的密码)
下行是在客户端存储密码,不确定它是否更好..
提前致谢,
答案 0 :(得分:1)
您需要先要求用户登录。登录时,可以使用用户ID在PHP中设置会话变量。然后,当发出delete_record
请求时,检查用户ID是否有权删除该记录。