昨天,我读了一些关于如何防止Json Hijacking with Asp.Net MVC的好文章。规则是:绝不会以get请求的形式发送json格式的合理数据。通过在谷歌上进行简单搜索,您可以轻松地学习如何定义一个脚本,该脚本将用于通过其auth cookie的帮助从另一个用途提取数据。Json使用Ajax劫持Jquery post请求
但是在阅读了所有这些文章之后,我不知道为什么使用Ajax Jquery post请求不能执行Json劫持。我读过Ajax请求受制于相同的源策略,但JQuery有一个属性可以执行跨域请求。
在这种情况下,是否有可能在文档就绪事件中使用$ .postJSON对脚本执行Json劫持?如果是或否,你能解释我的确切原因吗?
下面是一个简单的一串代码做什么,我在想:
$.postJSON = function (url, data, callback) {
$.post(url, data, callback, "json");
};
<script>
$(function(){
$.postJSON("/VulnerableSite/ControllerName/ActionName",
{ some data parameters }, function() {
// Code here to send to the bad guy the data of the hacked user.
}
});
</script>
非常感谢你。
我看了这篇文章(http://stackoverflow.com/questions/3877309/submit-cross-domain-ajax-post-request),他说我可以跨域AJAX调用与POST请求,但我赢了没有得到回应。在任何情况下,如果我总是使用POST请求,那么回答我就没有可能与JSON相关的漏洞。 – Samuel 2013-03-02 13:43:35
是否有可能通过调用$ .get而不是尝试重新定义数组来实现json劫持?我在网上阅读的所有文章都没有提到使用jQuery来做Ajax查询。 – Samuel 2013-03-22 12:26:25
@Samuel:不,jQuery AJAX请求受[同源策略](http://en.wikipedia.org/wiki/Same-origin_policy)保护。包含'