Скажімо, ваш веб-сайт має GetUser
веб-метод:
http://www.example.com/User/GetUser/32
який повертає відповідь JSON:
{ "Name": "John Doe" }
Якщо цей метод приймає лише POST-запити, то вміст буде повернутий у браузер лише у випадку, коли запит AJAX буде http://www.example.com/User/GetUser/32
використаний з використанням методу POST. Зауважте, що якщо ви не реалізували CORS , браузер захищатиме дані з інших доменів, роблячи цей запит вашим.
Однак якщо ви дозволили GET-запити, а також зробили запит AJAX, подібний до наведеного вище, з GET замість POST, зловмисник може включити ваш JSON у контекст свого власного сайту, використовуючи script
тег у HTML. наприклад www.evil.com
:
<script src="http://www.example.com/User/GetUser/32"></script>
Цей JavaScript повинен бути марним, www.evil.com
оскільки не повинно бути способом зчитування об'єкта, поверненого вашим веб-методом. Однак, через помилки в старих версіях браузерів (наприклад, Firefox 3), можливо, об’єкти прототипу JavaScript переробляти і дозволяти www.evil.com
читати ваші дані, повернені вашим методом. Це відомо як Викрадення JSON.
Дивіться у цій публікації деякі методи запобігання цьому. Однак це не відома проблема з пізнішими версіями сучасних браузерів (Firefox, Chrome, IE).