Javascript 如何保护ajax调用(JS到PHP)
我的问题很简单,但我找不到任何关于它的最新信息 基本上,我有一个phonegap应用程序:Javascript 如何保护ajax调用(JS到PHP),javascript,php,ajax,security,Javascript,Php,Ajax,Security,我的问题很简单,但我找不到任何关于它的最新信息 基本上,我有一个phonegap应用程序: HTML文件 JS文件 和OVH服务器上的php文件 当应用程序需要对数据库(mysql ovh)进行CRUD时,可以使用ajax调用完成 例如: if(confirm("Delete record ?")){ params = { "action": "delete_record", "record_id": record_id } aja
- HTML文件
- JS文件
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 post,因此我不必编写所有信息,例如文件URL等等
问题是,任何人都可以编辑javascript文件(通过解压缩.apk、.xap或通过控制台(如果是web版本)并将参数转换为
params = {
"action": "delete_record",
"record_id": 5
}
并删除记录编号5(这不是他的,他不应该能够)或任何他想要的记录,这样他就可以删除所有记录。
有没有一种我不知道的经典处理方法
我想出了一个解决办法:
我可以将密码存储在中,每次通过ajax访问数据库时,我都会传递用户ID(已经存储在存储器中)和密码。
然后我会在PHP端检查密码和ID是否匹配(有点像日志记录)
这样,我可以确保发送请求的用户是记录的所有者,并且可以删除它。(我不认为有人可以绕过它,因为它需要用户的密码)
缺点是在客户端上存储密码,不确定是否更好
提前感谢,您需要要求用户先登录。当他们登录时,可以使用用户ID在PHP中设置会话变量。然后当发出
delete\u record
请求时,您检查用户ID是否有删除该记录的权限。您可以使用/维护不允许php文件的phonegap的php会话吗?您的问题是OVH服务器上的php文件。。php文件仅通过phonegap应用程序的ajax调用使用(仅html/js文件),这就是我所说的。您应该执行一个AJAX调用来登录用户,它将设置一个会话变量。好的,我明白了,我混淆了phonegap“会话”(我用存储创建的)和PHP会话(我不知道它可以只使用AJAX调用来维护会话)。非常感谢:-)