Как я могу открыть дескриптор DB в C и передать его в Perl с помощью SWIG? - PullRequest
0 голосов
/ 17 декабря 2009

Пожалуйста, помогите мне в письменной форме SWIG взаимодействовать.

Я хочу открыть дескриптор соединения с базой данных в C-программе. Этот дескриптор должен быть передан в Perl, где я буду использовать интерфейс Perl DB для взаимодействия с базой данных. В целях безопасности мы хотели использовать этот механизм. Я хочу передать дескриптор базы данных, используя интерфейс SWIG.


Добавлена ​​

Мы используем инфраструктуру Perl для наших потребностей. Слишком много учетных записей пользователей, серверов баз данных, которые распределены по всей фирме. Мы хотели, чтобы бизнес-пароли были защищены, и хотели разрешить доступ только привилегированным пользователям. Ранее мы поместили все пароли в текстовый файл и прочитали его. Если мы останемся где-нибудь еще, то они смогут отлаживать модули Perl и находить их. Если мы создадим дескриптор в C и дадим его вместо возврата пароля, это будет более полезным.

Ответы [ 3 ]

3 голосов
/ 17 декабря 2009

Perl DBI (интерфейс базы данных) не обеспечивает передачу уже открытого дескриптора базы данных драйверу - интерфейс предполагает, что (DBI плюс соответствующий драйвер базы данных или модуль DBD :: XyzDBMS) установит соединение. Поэтому, в лучшем случае, вы будете писать код для расширения DBI, чтобы учесть это, а также расширять соответствующий DBD для его поддержки, что является совсем нетривиальным упражнением.

Итак, почему вы думаете, что это хорошая идея - в чем выгода безопасности, если вы делаете это таким образом, а не просто позволяете DBI обрабатывать соединение?


Встраивание паролей в приложение - неправильный путь, так как многие точки зрения трудно понять, с чего начать:

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

«Безопасность через неизвестность» вовсе не безопасна!

Но это то, что вы предлагаете использовать.

Пожалуйста, получите несколько советов о том, как писать безопасное программное обеспечение от тех, кто знает. Или почитайте несколько прекрасных книг на эту тему.

1 голос
/ 17 декабря 2009

Проверьте Inline :: C в качестве альтернативы (или нежной обертки вокруг) SWIG. Вы начнете использовать C из Perl гораздо быстрее, чем пытаться научиться использовать SWIG.

0 голосов
/ 17 декабря 2009

Мы используем инфраструктуру Perl для наших потребностей. Слишком много учетных записей пользователей, серверов баз данных, которые распределены по всей фирме. Мы хотели, чтобы бизнес-пароли были защищены, и хотели разрешить доступ только привилегированным пользователям. Ранее мы поместили все пароли в текстовый файл и прочитали его. Если мы будем хранить что-то еще, они смогут отлаживать модули perl и находить их. Если мы создадим дескриптор в C и дадим его вместо возврата пароля, это будет более полезным.

...