Як відомо, при відправці запиту серверу, браузер відправляє також заголовки, що містять cookies відповідного домену, в яких зазвичай зберігається ідентифікатор сесії. Таким чином серверний скрипт розуміє, що Ви зараз залягання і маєте доступ до певних файлів сесії. Окей.
Припустимо, на деякому домені N є сторінка оновлення профілю, обробна запит виду
При відправці такого запиту дані в анкеті відповідно змінюються.
Що ж зробить браузер? Вірно, він виконає запит N / profile.php? Name = Vasjasurname = Pupkin. чекаючи отримати MIME-тип image / jpeg. Звичайно ж, браузер до цього запиту додасть заголовки, що містять cookies домену N, включаючи Ваш ідентифікатор сесії. Дані Вашого профілю будуть успішно змінені, поки Ви, нічого не підозрюючи, будете милуватися картинкою somepage / image.jpg.
Ще вам потрібно знати, що даний вид атаки називається CSRF - Cross Site Request Forgery (підробка міжсайтових запитів). Одним з варіантів запобігання атаки є використання токена - оновлюваного при кожному запиті випадково згенерованого значення, що зберігається в сесії і додається в URL. Якщо токен, переданий в GET-запиті, не збігається з токеном, що зберігаються в сесії, то запит, ймовірно, сформований на іншому сайті. Оскільки дані, що зберігаються в сесії не залишають меж сервера, зловмисник зможе дізнатися токен, тільки викравши cookies або отримавши URL з токеном, за яким жертва перейшла останній раз.
Висновок простий: ніколи не показуйте незнайомим дядькам свої cookies та url, поки Ви залягання.