最近,我开始研究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/