javascript - Json 劫持与 Ajax Jquery post 请求

标签 javascript jquery json asp.net-mvc

昨天,我读了一些关于如何预防的好文章 Json Hijacking with Asp.Net MVC .规则是:永远不要通过 get 请求发送 json 格式的敏感数据。通过在谷歌上进行简单的搜索,您可以轻松地了解如何定义一个脚本,该脚本将用于在他的身份验证 cookie 的帮助下从其他用途中提取数据。

但是看完这些文章,我不知道为什么用Ajax Jquery post请求做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>

非常感谢。

最佳答案

but JQuery have a property to be able to do cross-domain request.

是的,但它只适用于 GET 请求。您不能使用 POST 请求进行跨域 AJAX 调用。此外,大多数现代浏览器已经修复了覆盖 __defineSetter__ 的可能性。方法。这种攻击的想法依赖于包含一个 <script>标记从恶意网站指向您的网站。但是浏览器发送 GET 请求以检索此脚本而不是 POST。这就是为什么使用 POST 以 JSON 传输敏感信息更安全。

关于javascript - Json 劫持与 Ajax Jquery post 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15174911/

相关文章:

javascript - 删除sequelize中的单引号原始查询

php - Laravel 5.2 从 MongoDB JSON 响应更新 MySQL 数据库

javascript - Jquery div 正确打开/关闭隐藏的 div

jquery - 将以下三元运算符转换为常规 if 语句?

javascript - Bootstrap 表格行在与弹出窗口一起使用时消失

arrays - 在 R 中将多列转换为 Json 数组?

c# - c#中不知道key的情况下读取json

javascript - Mixpanel - 跟踪所有链接并获取链接值

php - 使用 Javascript/PHP/mySQL 的日历

javascript - 手动请求模块与使用 browserify 动态调用模块有何不同?