0

SWIGインターフェースを書くのを手伝ってください。

C プログラムでデータベース接続ハンドルを開きたいです。このハンドルを Perl に渡す必要があります。Perl では、Perl DB インターフェイスを使用してデータベースと対話します。セキュリティ上の理由から、このメカニズムを使用したいと考えていました。SWIG インターフェイスを使用してデータベース ハンドルを渡したい。


追加

ビジネスのニーズに対応するため、Perl インフラストラクチャを使用しています。会社全体に分散しているユーザー アカウント (データベース サーバー) が多すぎます。ビジネス用パスワードを保護し、特権メンバーのみを許可したいと考えていました。前に、すべてのパスワードをテキスト ファイルに配置し、そこから読み取りました。他の場所に置いておけば、Perl モジュールをデバッグして見つけることができます。C でハンドルを作成し、パスワードを返す代わりに同じハンドルを指定すると、より便利になります。

4

3 に答える 3

3

Perl DBI (DataBase Interface) は、すでに開いているデータベース ハンドルをドライバに渡すための準備をしません - インターフェイスは、(DBI と関連する DataBase Driver または DBD::XyzDBMS モジュール) が接続を確立すると仮定します。したがって、せいぜい、DBI を拡張してこれを可能にするコードを作成し、関連する DBD を拡張してそれをサポートすることになりますが、これはまったく重要な作業です。

では、なぜこれが良い考えだと思いますか?単に DBI に接続を処理させるのではなく、このようにすることのセキュリティ上の利点は何ですか?


アプリケーションにパスワードを埋め込むことは、非常に多くの観点から間違った方法であり、どこから始めればよいかわかりません。

  • パスワードの変更は、プログラムの再コンパイルと再リリースを意味するため、決して起こりません。
  • 誰もが同じユーザー名とパスワードを使用してデータベースまたは Web サービスに接続するため、誰が接続しているのかわかりません。
  • パスワードはオブジェクト ファイルで発見できます。攻撃者が本当に懸念している場合、パスワードを見つけることができる可能性が高いです。
  • など。

「あいまいさによるセキュリティ」はまったく安全ではありません!

しかし、それはあなたが使用することを提案しているものです。

知っている人から、安全なソフトウェアを作成する方法についてアドバイスを受けてください。または、このテーマに関する多くの優れた本を読んでください。

于 2009-12-17T08:54:28.487 に答える
1

SWIG (または穏やかなラッパー) の代替としてInline::Cをチェックしてください。SWIG の使用方法を学ぼうとするよりも、Perl から C を使用する方がはるかに早く習得できます。

于 2009-12-17T17:18:18.473 に答える