У многих людей сложилось представление, что администраторская панель сайта всегда имеет только web-интерфейс. На самом деле теоретически возможно реализовать админку в виде обычной программы, которую можно запустить на собственном компьютере. Возможно уже существуют подобные, но я пока их не встречал =) Эта идея мне пришла в голову после работы с WinBinder, о котором я писал не так давно. С точки зрения безопасности админка, релизованная в виде программы, имеет ряд преимуществ. Не секрет, что на многих сайтах админ-панель обычно расположена в таких директориях, как admin/, a/, backend/, administration/, adm/, и т.д., что легко вычисляется злоумышленниками. Если же мы используем удаленную админку, то возможность перебора пароля хакерами исключается. Более того, весь функционал по администрированию сайтом вообще не находится на сервере! Доступ к панели администрирования имеет только тот пользователь, на компьютере которого установлена данная программа.
Можно выделить два варианта взаимодействия локальной программы с удаленной БД: напрямую и через специальный шлюз, реализованный в виде PHP-скрипта, который содержит функции для работы с БД. В первом случае взаимодействие пользователя с удаленной БД посредством программы возможно лишь в случае, если SQL сервер допускает подключения извне, что, несомненно, не в пользу безопасности сайта. Что касается второго варианта, то он, конечно, выглядит более предпочтительно, так как такая модель позволяет работать со SQL-сервером, как будто мы находимся прямо на localhost.
На скрипт шлюза можно наложить XOR-маску, которая будет храниться на локальном компьютере вместе с самой программой-админкой, что запутает злоумышленника, если он каким-либо образом получит доступ на локальное чтение файлов на сервере. Можно также зашифровать код скрипта специальным ключом, без которого запустить его не удастся.
Опенсорсные CMS’ки вряд ли используют или будут использовать подобные программы в качестве панели администрирования, по крайней мере мне не известно ни одной. А вот компании, создающие сайты на заказ, вполне могли бы использовать такое решение.
Leave a Reply