2012-04-03 15 views
1

私は、パブリックデスクトップサイト、パブリックモバイルサイト、およびプライベートイントラネットサイトを同じサーバー上に持っています。それらはすべてC#(ASP.Net 4.0)で書かれています。WindowsサービスまたはWebサービス?

それぞれには、クレジットカード決済を処理する独自のコードがあります。 3つのサイトすべてでクレジットカードの支払いを処理する1つのアプリケーションを作成したいと思います。このアプリケーションは、これらの3つのローカルアプリケーションからのみアクセス可能にします。

私がこれを行う方法を知っている唯一の方法は、Webサービスを作成し、ローカルホストへのトラフィックを制限することです。

これを行うには、「正しい」方法がありますか?代わりにWindowsサービスを作成する必要がありますか?

+1

妥当な解決策のようです。 – BluesRockAddict

答えて

0

一般的なアプローチは健全です。しかし、私はlocalhostに限定されたアクセスに頼るだけではありません。ある時点での誤った設定が1つあれば、支払いWebサービスが公開されます。また、サーバーが侵害された場合、そのローカルホスト上で実行されているすべてのプロセスは、未チェックのアクセス権を持ちます。

支払いWebサービスを保護するために、常に認証を使用してください。

フロントエンドのWebサイトと同じ物理ボックスに認証サービスを展開する必要がある場合は、支払いサービスのセキュリティに注意してください(クレジットカード番号やPIIの名前、住所、 ...データベースが正しく保護されていることを確認してください)。可能な場合は、適切なファイアウォールルールで保護された公衆向(または同僚向け)ウェブサイトとは別の追加層に支払いサービスを配置します。

0

アプリケーションの呼び出しがある場合、Windowsサービスは良い選択とは思えません。私がWCFについて知っている限り、NetTcpBindingとNetNamedPipeBindingのオプションがあります。

NetTcpBinding - 安全でWCFアプリケーション間のクロスマシン通信に適した結合を最適化。

NetNamedPipeBinding - WCFアプリケーション間のオンマシン通信に適した、安全で信頼性の高い最適化されたバインドです。

関連する問題