2012-02-10 9 views
0

私はC++を使用している専門家向けのデスクトップアプリケーションを作成しています。私の現在の設計は、APIがTCP/IPに基づいているサードパーティのC++コンポーネントに依存しています。このコンポーネントを統合するには、ネットワーキングコードを従来のC++ APIで置き換えるように変更する必要があります。デスクトップアプリケーションのループバック接続 - 信頼性と安全性?

コンポーネントをそのままにして、期待通りの方法でネットワークを介して通信できるようにすればもっと簡単になります。これを行うには、ループバック接続用のいくつかの上位ポートでリッスンするサーバーとしてコンポーネントを実行する必要があります。

私はこのループバックアプローチに2つの懸念があります。誰も私の恐怖を和らげたり、確認したりできますか?

信頼性とパフォーマンス ループバック接続が失敗するか、ウイルス対策ソフトウェアによってブロックまたは傍受される可能性があります。このような何か:Loopback connections working in user's context but not working from Local System account

セキュリティ は、私は私のループバックパケットを盗聴誰かについてあまり心配していないが、私は私のサーバーは、セキュリティ上のリスクそのものになることを望んでいません。いくつかの高いポートでプロセスを聞くのは危険ですか?

多くのデスクトップアプリケーションは、次のように動作しますか?

私は当初Windowsで開発していますが、将来はMacとLinuxに移行する可能性がありますので、この質問はすべての一般的なデスクトップOSに当てはまります。

+0

このサードパーティのコンポーネントの性質は何ですか?それはTCP/IPを必要としない「ローカル」バージョンのいくつかの種類を持っていなかった場合は、それが何であるかに応じて、私は驚くだろう。ネットワーク化されていないバージョンがあるかどうかベンダーに問い合わせてください。 –

+0

私がそれを記述できる最良の方法は、「ウェブサーバーのように」です。 – paperjam

答えて

1

信頼性:コンポーネント自体が信頼できるものであれば、ループバックインターフェイスのリスニングに問題はありません。コンポーネントが信頼できない場合は、関数を直接呼び出すのではなく、ループバックインターフェイスを使用して対話する方がよいでしょう。接続を簡単に処理してコンポーネントを再起動して作業を続けることはできますが、コンポーネントにリンクしてコンポーネントが失敗すると、アプリケーションも失敗します。

パフォーマンス:いくつかのパフォーマンスの低下があります。現在のCPUパワーではあまり大きくありません。ほとんどのアプリケーションでは問題ありません。

セキュリティ:コンポーネントは、セキュリティ上の問題を回避するために、localhostアドレスにバインドする必要があります。しかし、十分なアクセスレベルを持つローカルの3-Dパーティーのソフトウェア(ウイルス)ソフトウェアは、通信ストリームを傍受したり変更したりする可能性があります。他の通信方法と同じです。

ループバック接続がwidly使用されている(javaはなど、マスター・サービス制御のためにそれを使用するという名前の、相互通信のためにそれを使用しています)

関連する問題