昨天,我阅读了一些关于如何使用 Asp.Net MVC 防止 Json 劫持的好文章。规则是:永远不要通过 get 请求以 json 格式发送敏感数据。通过在 google 上进行简单的搜索,您可以轻松地了解如何定义一个脚本,该脚本将用于在他的 auth cookie 的帮助下从另一个用途中提取数据。
但是在阅读了所有这些文章之后,我不知道为什么无法使用 Ajax Jquery post request 进行 Json Hijacking。我读到 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>
非常感谢你。