0

状況:

ルーターの背後にあるサーバーにある開発済みのasp.net Webサイトがあります。Webサイトは、サーバーからクライアントのSQLサーバーインスタンスにインターネット経由で接続できる必要があります。

追加情報:

私のasp.net Webサイトは、個々のデータベースに対して何百ものSQLステートメントを実行してデータを検証するデータ検証ツールです。

質問:

  1. これを行う最善の方法は何ですか?

そして、最高の意味で、安全で実装も簡単です

可能な解決策:

  1. クライアント側ルーターとルーターでのポート転送により、IPアクセスのみが許可されます
  2. ポートノッキングの実装
  3. VPN

ご質問、コメント、懸念事項は大歓迎です。

4

2 に答える 2

1

私が現在勤務している会社では、さまざまなシステムでこれを行っています。私たちは常に、ネットワークとクライアントの間でプライベート B2B VPN 接続を使用し、ソフトウェアに必要なポートのみを開いています。クライアントが望むなら、それがおそらく最良かつ最も簡単な接続方法になるでしょう。この接続は、有線接続のみに制限されており、会社のマシンであることがわかっている MAC アドレスからのみに制限されています。ただし、必要に応じて、これをアプリケーションに合わせて微調整できます。

少し邪魔にならないものを探している場合は、必要なデータを Web サイトに公開する WCF サービスを作成し、顧客にそれをインストールしてもらうことをお勧めします。ほとんどのクライアントは、サービスの購入を検討している場合、喜んでそうするでしょう。少なくとも私の経験では、別の会社から。

さらに別のオプションとして、あなたのサイトをいわば「ボックス化された」製品にして、クライアントにソフトウェアを販売して、クライアントがネットワーク内にインストールし、アクセスを許可する代わりに LAN 上で実行できるようにすることもできます。

于 2013-01-17T14:49:33.563 に答える
1

ASP.NET アプリケーションは本当にクライアント データベースに接続する必要がありますか? これは良い考えとは思えません。

  • 反対側のネットワークを制御することはできません
  • クライアントは、データベースなどを削除/変更/削除することができます
  • 通常、ほとんどの人は、データベースがファイアウォール ルールや VPN で保護されていても、インターネット経由でデータベースへの接続を許可することを快く思わないでしょう。
  • 外部ソースから内部リソースへの認証を許可することに消極的

いくつかの代替ソリューションは次のとおりです。

ポーリング: クライアント側で実行され、ASP.NET アプリケーションに接続し、データを受信して​​データベースに挿入するアプリケーション。これは最初の意図と似ていますが、若干の違いがあります。クライアントが通信を開始するため、接続について心配する必要はありません。ローカル アプリケーションは、データベースのチェック、ビジネス ルール、ASP.NET アプリとの HTTPS 通信などのセキュリティの適用も実行できます。

クライアント/サーバー: ポーリング ソリューションと同様に、クライアント側に通信をセットアップする別のアプリケーション (WCF net TCP / http SOAP など) を用意し、クライアントを ASP.NET アプリケーションに登録してから、データを送信することができます。プッシュ アーキテクチャで必要なときにいつでも。

上記の両方のソリューションは単純なアイデアであり、完全な実装ガイドラインではありませんが、他の方法を検討するのに役立つ場合があります。

サービス: データをローカルに保存し、クライアントがデータベースに直接書き込むのではなく、データを受け取る方法を提供できますか? たとえば、各クライアントの RSS / XML フィードですか?

代替案が実装要件に適さず、多くのクライアント インフラストラクチャに接続する必要がある場合、内部の IT ポリシーに応じて、上記のすべてのオプションをサポートする必要があると思います (外部接続を受け入れることさえ許可されている場合)。 )どちらを好むかを規定する場合があります。

于 2013-01-17T14:03:03.067 に答える