【发布时间】:2013-08-19 00:11:55
【问题描述】:
我的 ajax 代码是:
$.ajax({
type: "POST",
url: "save.php",
data: {
name: $(this).attr('name'),
value: $(this).val(),
id: <?php if(!empty($_SESSION['user'])) echo $_SESSION['user'];?>
}
});
在 save.php 中我正在检查这个条件:
if (empty($_SERVER['HTTP_X_REQUESTED_WITH']) || $_SESSION['user']!=$_POST['id']){
//then show an error
}
这是防止未经授权调用 save.php 的正确方法吗?
【问题讨论】:
-
您具体要保护什么?
-
@Brad 任何人都可以使用 jquery/ajax 创建一个页面,并将 URL 设置为我网站的 save.php。这将授予未经授权的访问权?我又在某处听说过“跨浏览器伪造”。
-
请记住,任何人都可以在浏览器之外创建虚假请求,并轻松欺骗这些标头。