[英]Json Hijacking with Ajax Jquery post request
昨天,我读了一些关于如何使用 Asp.Net MVC防止Json 劫持的好文章。 规则是:永远不要通过 get 请求以 json 格式发送合理的数据。 通过在 google 上进行简单的搜索,您可以轻松了解如何定义一个脚本,该脚本将用于在他的 auth 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>
非常感谢你。
但是 JQuery 有一个属性可以做跨域请求。
是的,但它仅适用于 GET 请求。 您不能使用 POST 请求进行跨域 AJAX 调用。 此外,大多数现代浏览器已经修复了覆盖__defineSetter__
方法的可能性。 这种攻击的想法依赖于包含一个<script>
标签,该标签从恶意站点指向您的网站。 但是浏览器发送 GET 请求是为了检索此脚本而不是 POST。 这就是为什么使用 POST 使用 JSON 传输敏感信息更安全的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.