最近,我开始研究jquery的ajax函数。我已经做了很多改进,但是我一点都不安全。如何保护我的ajax调用

例如,以下代码用于删除链接:

// Delete link
$('.delete_update').live("click",function() {
    var ID = $(this).attr("id");
    var dataString = 'linkid='+ ID;

    if(confirm('<?php echo _("Are you sure you want to delete this link?");?>')) {

        $.ajax({
            type: "POST",
            url: "ajaxsave.php",
            data: dataString,
            cache: false,
            success: function(html){
                $(".bar"+ID).fadeOut('slow', function() {$(this).remove();});
            }
        });

    }
    return false;
});

如示例所示,ajaxsave.php负责删除具有matchin POST linkid的链接。据我所知,有可能向外部网址提交post表单。这意味着每个人都可以查看我的源代码,并选择自己的链接ID来制作自己的帖子形式。这样,他们可以删除所需的所有链接。

如何保护我的代码?
-ajaxsave.php中的Http Referrer? curl 脚本可能会破坏这一点。
-在调用ajax函数的页面上使用 session 或cookie?将 session 保存在数据库中并在ajaxsave.php中进行检查?

你能帮助我吗?您如何以一种优雅的方式做到这一点。或所有这些现代ajax网站上的“正常”内容是什么。

最佳答案

这可能为时已晚,无法使用,但简单的答案是这样的:

在ajaxsave.php中,您需要检查请求是否来自经过身份验证(登录)和授权(具有删除此链接的权限)的用户。如果您不做这些事情,那么您的网站肯定会受到威胁。

(可选)您可以确定所有经过身份验证的用户都是可信任的,并且能够删除他们想要的任何内容。但是,您仍然需要在ajaxsave.php中检查身份验证。

关于jquery - 保护jquery ajax调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4079306/

10-10 06:22