Вопросы безопасности при работе с BDE

Безопасность BDE: угрозы и риски при использовании устаревшего движка
Borland Database Engine (BDE) — легендарная, но давно не обновляемая прослойка для доступа к базам данных. На 2026 год её использование сопряжено с серьёзными уязвимостями, которые критичны для современных проектов. Рассмотрим ключевые риски и сравним BDE с актуальными альтернативами.
Основные проблемы безопасности BDE
- Отсутствие обновлений безопасности — последняя версия BDE (5.2) выпущена более 20 лет назад. Новые типы атак (SQL-инъекции, перехват соединений) не патчатся.
- Уязвимость к инъекциям через TQuery — при непосредственной конкатенации строк запроса BDE не фильтрует ввод, что ведёт к SQL-инъекциям.
- Аутентификация в открытом виде — параметры подключения (логин/пароль) передаются почти без шифрования, особенно по протоколам SQL Links.
- Проблемы с локальными файлами — работа через Paradox и dBASE хранит данные в файлах, доступных для прямого чтения/записи минуя права БД.
- Сложность аудита — BDE не ведёт собственных логов безопасности, что усложняет расследование инцидентов.
Сравнение BDE c альтернативами: таблица характеристик
- Критерий: Защита от SQL-инъекций — BDE: Нет (ручная параметризация) | FireDAC: Да (встроенная) | dbGo (ADO): Да (через Command.Parameters) | UnidAC: Да (полная)
- Критерий: Шифрование трафика — BDE: Нет | FireDAC: Да (SSL/TLS) | dbGo: Через провайдера | UnidAC: Да (настраиваемое)
- Критерий: Поддержка современных механизмов (Windows Auth, Kerberos) — BDE: Нет | FireDAC: Да | dbGo: Да | UnidAC: Да
- Критерий: Аудит и логирование — BDE: Нет | FireDAC: Да (через монитор) | dbGo: Через СУБД | UnidAC: Да (событийная модель)
- Критерий: Обновления безопасности — BDE: Нет (EOL) | FireDAC: Активные (Embarcadero) | dbGo: В составе Windows | UnidAC: Активные (Devart)
Кому подходит BDE, а кому — нет
BDE подходит: для поддержки легаси-проектов на изолированных сетях (без выхода в интернет), когда миграция невозможна из-за бюджета или времени. Для быстрых прототипов без требований к безопасности. Для работы исключительно с локальными файлами Paradox (не в production).
BDE не подходит: для проектов с публичным доступом (веб-сервисы, клиент-сервер через интернет); при необходимости соответствия стандартам PCI DSS, GDPR или 152-ФЗ; при работе с удалёнными базами данных через открытые каналы; для новых разработок на Delphi — выбирайте FireDAC или UnidAC.
Выбор альтернативы: рекомендации по сценариям
Для миграции с BDE на FireDAC — идеальный вариант, если вы используете современные Delphi (2009+). FireDAC имеет встроенные конвертеры строк подключения и поддерживает большинство функций BDE. Безопасность реализована через параметризованные запросы и шифрование.
Для мультиплатформенных проектов — UnidAC (от Devart) даёт единый API для Firebird, SQL Server, MySQL, Oracle, PostgreSQL. Включает защищённые протоколы и управление пулом соединений.
Для Windows-only и работы с ADO — dbGo (TADOConnection) — это обёртка над ADO, которая наследует безопасность провайдера БД. Рекомендуется для SQL Server и Access.
Для максимальной защиты legacy-кода — промежуточный слой через ODBC-драйверы с поддержкой SSL (например, Devart ODBC Driver), которые изолируют BDE-код от прямых уязвимостей.
Заключение
BDE остаётся «чёрным ящиком» с точки зрения безопасности. Если ваш проект на Delphi 2026 требует аудита, защищённого соединения или соответствия стандартам — оптимальный выбор FireDAC или UnidAC. Для тех, кто вынужден держать BDE, рекомендуем изолировать среду выполнения от внешних сетей и максимально ограничить права доступа к файлам Paradox/dBASE. Помните: отсутствие обновлений — это не стабильность, а накопленные риски.
Добавлено: 27.04.2026
