Web sitenizin bir GetUser
web yöntemi olduğunu varsayalım:
http://www.example.com/User/GetUser/32
bir JSON yanıtı döndürür:
{ "Name": "John Doe" }
Bu yöntem yalnızca POST isteklerini kabul ederse, içerik yalnızca http://www.example.com/User/GetUser/32
POST yöntemi kullanılarak bir AJAX isteği yapılırsa tarayıcıya döndürülür . CORS uygulamadıysanız , tarayıcının verileri sizinkine bu isteği yapan diğer etki alanlarından koruyacağını unutmayın.
Bununla birlikte, GET isteklerine izin verdiyseniz ve POST yerine GET ile yukarıdakine benzer bir AJAX isteğinde bulunduysanız, kötü niyetli bir kullanıcı script
HTML'de bir etiket kullanarak JSON'nuzu kendi sitelerinin bağlamına dahil edebilir . örneğin www.evil.com
:
<script src="http://www.example.com/User/GetUser/32"></script>
Bu JavaScript www.evil.com
, web yönteminizin döndürdüğü nesneyi okumanın bir yolu olmaması gerektiğinden işe yaramaz olmalıdır. Ancak, tarayıcıların eski sürümlerindeki hatalar nedeniyle (örn. Firefox 3), JavaScript prototip nesnelerinin yeniden tanımlanması ve www.evil.com
yönteminizin döndürdüğü verilerinizin okunmasını mümkün kılması mümkündür . Bu, JSON Hijacking olarak bilinir.
Bunu önlemenin bazı yöntemleri için bu gönderiye bakın . Ancak, modern tarayıcıların (Firefox, Chrome, IE) sonraki sürümlerinde bilinen bir sorun değildir.