Найти тему
Камиль Абзалов

Cookie и SQL инъекции

В этом уроке мы рассмотрим механизм COOKIE, который схож с механизмом сессий, который мы разбирали на прошлом уроке. Также мы рассмотрим очень важный вопрос безопасности веб приложений — внедрение вредоносного SQL кода (SQL инъекция).

COOKIE схожи по своему назначению с сессиями — в них можно хранить данные приложения — информация о пользователе и пр. Но в чем же ключевое различие? COOKIE хранятся в браузере пользователя, а это значит, что к COOKIE можно легко добраться и, соответственно, подменить, украсть и так далее. А значит хранить данные авторизованного пользователя как минимум небезопасно. Сессии конечно тоже можно подменить, но все же сделать это гораздо тяжелее. Злоумышленнику придется потрудиться. Зачем же тогда COOKIE, что можно хранить в них COOKIE? Например, корзину с товарами — предположим, вы положили товары в корзину, но не оформили заказ до конца. Через некоторое время вы возвращаетесь на сайт, и вам не надо заново класть товары в корзину. Это все благодаря COOKIE.

Второй вопрос урока — SQL инъекции. Эту проблему научились решать, но все же начинающим разработчикам важно понять опасность проблемы, чтобы уметь ее обходить. Суть опасности в том, что на стороне сервера вы никак не фильтруете данные, а просто принимаете данные в том виде, в котором их передал вам клиент. Например, в поле формы злоумышленник может ввести такие данные: ‘admin’ or 1=1. Запрос на выборку примет вид SELECT * FROM table_name WHERE user = ‘admin’ or 1=1. Вторая часть условия в запросе будет всегда верно, а значит злоумышленник получит все данные из таблицы table_name. В уроке рассмотрен пример с вариантом, где при помощи SQL инъекции можно удалить базу данных.

Код урока - http://kamil-abzalov.ru/videouroki/phpmysql/cookie-and-sql-injection/