ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 28.04.2024
Просмотров: 78
Скачиваний: 0
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
Именно поэтому для смены e-mail и пароля в социальных сетях регулярно просят подтвердить текущий пароль. Те, кто украл сессию, не будут знать его и не смогут сменить пароль и/или e-mail.
А что, если хакер каким-то образом получил доступ к паролю? Возможно, для этого использовалась социальная инженерия, и это не вина разработчиков сайта.
Но и в этом случае разработчики пытаются пойти навстречу пользователям ради спасения своей репутации. Просто когда кто-то потеряет доступ к своему аккаунту, то ему будет все равно, по чьей вине это произошло — скорее всего, он будет винить именно разработчиков сайта.
При смене логина или пароля обязательно отправьте e-mail с уведомлением, что данные изменились.
В случае смены e-mail обязательно отправьте уведомление на старый адрес, который был до смены привязан к аккаунту.
ГЛАВА 10
XSS
В последнее время очень много разговоров было о том, нужны ли файлы cookies или нет. Да, они позволяют сохранять web-сайтам информацию на компьютере пользователя и потом использовать ее для предоставления персонализированного содержимого web-страниц. В главе 9 мы уже видели, что одним из способов использования cookies является авторизация пользователя.
В большинстве случаев это очень удобно, но далеко не безопасно. Меня не волнует, что web-сайты могут сохранять в таких файлах информацию о том, какие web- страницы я просматривал и чем интересуюсь, если эта информация не привязана конкретно ко мне, а хранится и используется анонимно. Эту информацию можно сохранить и без cookies. Меня волнует то, что эти данные может увидеть хакер. Один из способов воровства — атака XSS.
Для реализации этой атаки хакеру необходимы базовые знания языка JavaScript. Этот язык очень прост и на первый взгляд абсолютно безобиден, потому что не имеет доступа к ресурсам компьютера. Единственное, что можно делать с помощью JavaScript, — управлять браузером, но для хакера иногда этого достаточно. Главное — внедрить свой JavaScript-код в web-страницу, а дальше уже действовать по ситуации. А ситуации бывают разные, их изучением мы и займемся в этой главе.
10.1. Основы XSS
Опять же, все примеры сценариев в этой главе будут приведены на PHP, но в данном случае важен не язык, а идея, чтобы понять, как все работает. Атака и подход к защите выглядят примерно идентично во всех языках.
Чаще всего XSS подвержены web-сайты, в которых используется аутентификация посредством данных, хранящихся в cookies, и есть возможность сохранять данные, которые в дальнейшем будут отображаться на web-странице. Ярким примером такого web-сайта является форум. Давайте рассмотрим простейший пример использования уязвимости. В листинге 10.1 приведен код сценария, который отображает форму для ввода имени пользователя и текста сообщения. Полученные данные со
храняются в базе данных и отображаются на web-странице. Получается классическая гостевая книга.
Листинг 10.1. Сценарий, уязвимый для атаки XSS
XSS test
<Ь3>РезультатЬ3>
if ($_GET['button'] == 'Send') {
?>
= $_GET['poster_name'] ?>
= $_GET['message'] ?>
}
?>