jQuery GetJSON安全问题。在浏览器中复制URL和粘贴

时间:2011-07-08 12:28:57

标签: jquery ajax json security

我在ASP页面中使用jQuery GetJSON调用。它类似于以下代码:

$.ajax({
    url: myUrl/myPage.aspx?callback=BookARoom,
    dataType: 'json'
});

这实际上会在我的系统中预订的房间中结束,但问题是如果用户复制此URL并将其粘贴到浏览器中,则会预订房间。由于他已经有了会话,我无法在ASP页面中区分它。我该如何防止这种情况?

2 个答案:

答案 0 :(得分:1)

这里有两个问题。

第一个问题:GET请求应该是安全的。有很多事情可以触发GET请求。如果您要根据GET请求更改状态,则会严重破坏您的代码。使用POST

其次,其他网站可能会导致您的用户向您的网站发出请求。这称为Cross-Site Request Forgery。典型的解决方案是每个请求都需要一个随机数。由于其他网站不知道该随机数,因此他们无法再伪造请求。我提供的链接将为您提供有关替代解决方案的进一步阅读。

答案 1 :(得分:0)

为了防止普通用户这样做,要求它使用POST而不是GET作为HTTP谓词(要求必须设置为服务器端)并输入:“POST”应该在你的ajax调用中使用。

为防止“高级”用户欺骗它,简短的回答是:你做不到。你可以想出任何方法。考虑使用CSRF令牌以防止其他人将链接嵌入到其他网站中。