Программа

Пуленепробиваемый бэкенд на PostgreSQL

Доклад, 16 июля

Пуленепробиваемый бэкенд на PostgreSQL pdf Скачать

В наше время, когда фреймворки "из коробки" защищают приложение от инъекций и межсайтовой подделки запросов, а также самостоятельно пишут 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 /> Обо всем этом мы подробно расскажем в докладе.