Wczoraj przeczytałem kilka fajnych artykułów o tym, jak zapobiec Json Hijacking with Asp.Net MVC. Zasada jest taka: nigdy nie wysyłaj sensownych danych w formacie json na żądanie pobierania. Dzięki prostemu wyszukiwaniu w google, możesz łatwo nauczyć się definiować skrypt, który będzie używał do wyodrębniania danych z innego użycia za pomocą jego auth cookie.Porwanie Jsona z zapytaniem o Ajax Jquery
Ale po przeczytaniu wszystkich tych artykułów, nie wiem, dlaczego nie można przeprowadzić Json Hijacking z żądaniem postu Ajax Jquery. Czytałem, że żądania Ajax podlegają tej samej zasadzie pochodzenia, ale JQuery ma właściwość, aby móc wykonywać żądania z różnych domen.
Czy w tym przypadku możliwe jest przechwycenie Json skryptem za pomocą $ .postJSON w zdarzeniu gotowym do pracy z dokumentem? Jeśli tak lub nie, czy mógłbyś wyjaśnić mi dokładnie, dlaczego?
Oto prosty bukiet kod do tego, co mam na myśli:
$.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>
Dziękuję bardzo.
Przeczytałem w tym poście (http://stackoverflow.com/questions/3877309/submit-cross-domain-ajax-post-request) i on mówi, że mogę wykonać połączenie AJAX między domenami z żądaniami POST, ale wygrałem Nie otrzymam odpowiedzi. W żaden sposób, że odpowiedział mi, nie ma żadnych możliwych luk w zabezpieczeniach w stosunku do JSON, jeśli zawsze używam żądania POST. – Samuel
Czy można przejąć json z wywołaniem $ .get zamiast próbować przedefiniować tablicę? Wszystkie artykuły, które czytam w sieci, nigdy nie wspominają o używaniu jquery, aby uzyskać zapytanie z ajaxem. – Samuel
@Samuel: Nie, żądania jQuery AJAX są chronione przez [Politykę Same Origin] (http://en.wikipedia.org/wiki/Same-origin_policy). W tym ''