Метки записи: |
Terrasoft CRM хорошая система. Лично мне, как разработчику клиент-серверных приложений она сильно облегчает жизнь.
Но я привык к тому, что разграничение прав в созданных мною программах не так то легко обойти. К сожалению, этого я не могу пока сказать о Terrasoft CRM. Вот, к примеру, такая ситуация:
Я захожу в систему под обычным, "смертным" пользователем. Естественно, я не имею прав на, предположим, редактирование скриптов. Ан нет, имею! Как это сделать? Легко:
1. Заходим на мой сайт.
2. Из раздела проекты качаем мою програмку - WnDViewer.
3. Запускаем его, ищем скрытую кнопку "Скрипт" и делаем ее видимой.
4. Нажимаем на кнопочку и редактируем скрипт...
Прошу Вас обратить на это внимание, ведь раз обойти защиту смог я, значит сможет и кто-то другой...
Комментарии
Все гораздо веселее, на самом деле :).
Любое клиентское место Terrasoft имеет файл Settings.ini
с прописанным в нем чистым текстом паролем к БД.
Зная пароль можно слить данные с любой клиентской машины.
Не прямым стандартным дампом, придется программку написать свою,
которая, к примеру данные в нужных связках будет выбирать
с помощью SELECTов. Но тем не менее, задача имхо не такая сложная.
Таким образом, вообще о защите данных как можно говорить?
Прошу специалистов Terrasoft прокомментировать мой пост.
Может быть я в чем-то неправ?
При первоначальной установке в утилите DBAdmin.exe -> Настройка соединения пароль хранится в открытом виде – это необходимо для первоначальной установки.
В этом случае в файле Settings.ini, который находится, как правило, по адресу C:\Program Files\Terrasoft CRM 2.8, хранится информация о строке соединения (например: ConnectionString =Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Irina-test;Data Source=KOSTENKO).
Для того, чтобы данная строка была "зашифрована" и не была видна в дальнейшем, необходимо в файле Settings.ini в описании строки соединения прописать "secured" (например: ConnectionString =secured).
Тогда в утилите DBAdmin.exe -> Настройка соединения в строка соединения вместо данных будет надпись: "secured", а сами параметры соединения будут храниться в зашифрованном файле SecuredConnection.rsa.
Я не просил коментировать мой пост, думая что это само сабой разумеется...
Но, все же, интересно услышать мнение разработчиков по данному поводу.
Ирина права - пароль доступа к серверу баз данных можно зашифровать. Насчет всего остального - конечно Террасофт 2.8 далек от хорошой зашиты данных - просто задачи ставились не те, да и хорошо "подкованых" пользователей не так много, но мы учимся на ошибках и версия 3.0, которая разрабатывается лучше продумана на предмет взлома данных.
Non noceo.
А скрипт можно сохранить при этом? Или он только для чтения доступен?