昨天,我讀了一些關於如何防止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)保護。包含'