如何保护ajax调用(JS到PHP)

时间:2015-08-18 20:18:39

标签: javascript php ajax security

我的问题很简单,但我找不到任何有关它的更新信息。

基本上,我有一个手机应用程序:

  • 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或通过控制台,如果它是网络版)并将参数转换为

params = { 
    "action": "delete_record",
    "record_id": 5
}

并删除记录号5 (这不是他的,他不应该)或他想要的任何记录,这样做,他可以删除所有记录。< /强>

有没有一种经典的方法来处理这个我不知道的事情?

我提出了一个解决方案: 我可以将密码存储在storage.setItem("")中,每次通过ajax访问数据库时,我都会传递userid(已经存储在存储中)和密码。 然后我会在PHP端检查密码和ID是否匹配(登录物的种类)。

这样,我确定发送请求的用户是记录的所有者,可以删除它。 (我不知道有人可以绕过它,因为它需要用户的密码)

下行是在客户端存储密码,不确定它是否更好..

提前致谢,

1 个答案:

答案 0 :(得分:1)

您需要先要求用户登录。登录时,可以使用用户ID在PHP中设置会话变量。然后,当发出delete_record请求时,检查用户ID是否有权删除该记录。