← Программа
Пуленепробиваемый бэкенд на PostgreSQL
Доклад,
16 июля
Пуленепробиваемый бэкенд на PostgreSQL
Скачать
↓
В наше время, когда фреймворки "из коробки" защищают приложение от инъекций и межсайтовой подделки запросов, а также самостоятельно пишут SQL, очень легко почувствовать себя в комфорте и безопасности и потерять контроль над данными.<br />
<br />
В типичном Web-приложении, запросы к объектам базы данных идут от имени одного и того же пользователя, который эти объекты и создавал. Наличие уязвимости в коде приложения в такой ситуации равнозначно краже и/или уничтожению всей информации. Разработчики с опытом иногда урезают права на выполнение особо "крутых" команд, например, DROP TABLE / DATABASE, или даже создают отдельных пользователей с правом читать или писать в конкретные таблицы.<br />
<br />
Но даже такой подход никуда не годится. Злоумышленник, получив доступ к базе от имени пользователя, которому доступно чтение, сможет прочитать всю таблицу, что может быть крайне критичным и недопустимым для бизнеса.<br />
<br />
В версии 9.5 PostgreSQL заявлена Row-Level Security Policy (RLS), но, пока светлое будущее не наступило, наша задача - сделать пуленепробиваемый "бэкенд" с использованием хранимых процедур.<br />
<br />
Как правильно создавать пользователей базы данных?<br />
Как перенести логику приложения в хранимые процедуры и выдать на них нужные права, чтобы надежно защитить данные?<br />
Как тестировать и выкатывать правки в "бэкенд", сделанный подобным образом?<br />
<br />
Обо всем этом мы подробно расскажем в докладе.