Katakanlah situs web Anda memiliki GetUser
metode web:
http://www.example.com/User/GetUser/32
yang mengembalikan respons JSON:
{ "Name": "John Doe" }
Jika metode ini hanya menerima permintaan POST, maka konten hanya akan dikembalikan ke browser jika permintaan AJAX dibuat untuk http://www.example.com/User/GetUser/32
menggunakan metode POST. Perhatikan bahwa kecuali Anda telah menerapkan CORS , browser akan melindungi data dari domain lain yang membuat permintaan ini kepada Anda.
Namun, jika Anda mengizinkan permintaan GET dan juga membuat permintaan AJAX yang serupa dengan yang di atas dengan GET, bukan POST, pengguna yang berniat jahat dapat menyertakan JSON Anda dalam konteks situs mereka sendiri dengan menggunakan script
tag di HTML. misalnya pada www.evil.com
:
<script src="http://www.example.com/User/GetUser/32"></script>
JavaScript ini seharusnya tidak berguna www.evil.com
karena seharusnya tidak ada cara membaca objek yang dikembalikan oleh metode web Anda. Namun, karena bug di versi lama browser (mis. Firefox 3), objek prototipe JavaScript dapat didefinisikan ulang dan memungkinkan untuk www.evil.com
membaca data Anda yang dikembalikan oleh metode Anda. Ini dikenal sebagai JSON Hijacking.
Lihat posting ini untuk beberapa metode mencegah ini. Namun, ini bukan masalah yang diketahui dengan versi browser modern yang lebih baru (Firefox, Chrome, IE).