2013-02-16 7 views
0

У меня всегда был этот вопрос, и, надеюсь, один из вас узнает ответ.C++ Безопасное подключение к DB

Я слышал через Интернет/Новости, что кодирование программного обеспечения, такое как C++, является обратимым, что, насколько я понял, заключается в том, что другие могут найти ваш исходный код из уже скомпилированного .exe.

Как защитить соединение с базой данных? Я имею в виду, как вы храните информацию о базе данных и каждый из ее запросов в mysql.

mysql_real_connect(conn, "localhost", "user", "passwd", NULL, 0, NULL, 0) 

Например, в приведенном выше коде, как вы бы сохранить информацию пользователя и пароль в безопасности, когда код зарезервирован и пользователь мог получить доступ исходный код?

Спасибо,

EDIT: То же самое относится к C или любого программного обеспечения разработки кода.

+0

Добавить третий уровень, сервер, который выполняет все запросы и переговоры с базой данных. Поиск REST. – Zar

ответ

2

Первое, что вам нужно: вы не должны передавать двоичные файлы с жестко закодированными именами пользователей и паролями для пользователя, но разрешать пользователю вводить их в какую-либо конфигурацию. Если они должны поговорить с вашей системой, вы должны установить одну учетную запись пользователя для каждого пользователя.

При хранении пароля в файле конфигурации вы можете хранить его в зашифрованном виде (это также может быть сделано при жестком кодировании, но это плохая практика) и дешифровать при необходимости. Разумеется, злоумышленник может попытаться определить алгоритм шифрования и кодовую фразу, чтобы предотвратить это можно только путем полного хранения или использования аппаратных криптографических систем (возможно, ключа)

В конце вопрос: How трудно сделать это? Тот, у кого есть (особенно физический) доступ и достаточная «потребность», всегда найдет способ.

+0

Но я имел в виду, что, как вы защищаете код, если кому-то удается получить исходный код? Шифрование паролей будет работать только для защиты паролем. Как насчет исходного кода? –

+0

Вы не можете полностью. Что вы можете сделать, так это упростить дизассемблирование, попросив компилятор сделать больше оптимизаций или снятия символов и других методов. – johannes

+0

Использует ли веб-сервер обрабатывать запросы, более рекомендуемые, чем писать запросы myqsl_ в программу? –

Смежные вопросы