1

MySQLコネクタをC#プロジェクトで使用して、データベースに直接接続し、統計情報を保存しています。私の質問は、私がこのプロジェクトをリリースし、誰かが私のデータベースにアクセスしようとする意思がある場合、ソフトウェア内から私のデータベースへの接続文字列を取得できますか?私はSQLコネクタを使用しているので、リアルタイムでデータを保存でき、大量のHTTPリクエストを生成することはありません。なぜ、HTTPリクエストでデータを送信しないのか疑問に思っている人のために。

4

3 に答える 3

4

はい、アプリケーションを逆コンパイルする場合。アプリケーションを難読化することができます (私はこれを行うことを好みません。アプリケーションに損害を与える可能性があります。しかし、そうすると、インターネットには多くの難読化ツールが存在します。 )。私にとって、これを行う最善の方法は、Settingsファイルを作成することです。その中には、データベース名、場所、ユーザー名、パスワードなどの暗号化された文字列があります。

于 2012-05-04T03:25:57.750 に答える
1

常に実用的ではありませんが、実行可能ファイルからプレーンテキスト文字列を取り出すことは常に可能です。セキュリティを少し強化したい場合は、いくつかのことが頭に浮かびます。

-接続文字列 (またはパスワードのみ) をアプリケーション全体に分割して保存することで難読化しますが、これはきれいではない可能性があります。

- アプリケーションにハードコーディングしたユーザーのアクセスを制限する

-暗号化されたパスワードを保存します。これは、キーがアプリケーションに保存されている場合でも難読化にすぎません (.NET 暗号化ライブラリには優れた AES ライブラリがあります)。

于 2012-05-04T03:32:34.860 に答える
1

はい。これが、N 層アプローチを推奨する理由です。アプリケーションは、.NET Web サービス、WCF サービス、RIA サービスなどを通過する必要があります。サービスはデータベースにアクセスし、データベースからデータを編集、挿入、選択します。もちろん、サービスはある種の認証プロセスを担当し、どの役割と機能を利用できるかを決定します。たとえば、一部のログインは Orders テーブルへの読み取りアクセス権しか持たない場合があります。一部のユーザーは、読み取り/書き込み/編集の完全な管理者権限を持っている場合があります。一部のログインには、顧客テーブルへの読み取りアクセスしかない場合や、自分の顧客レコードへのアクセスしかない場合もあります。

データベースのログイン資格情報を自分のネットワークの外部に公開したくありません。アプリがある時点でデータベースに直接接続している場合、難読化または暗号化を使用していても、それらの資格情報を送信する必要があり、これにより、ハッカーはそれらの値を傍受または取得する機会が与えられます。

N 層アーキテクチャを使用することにより、ユーザーは、より多くの特権を得るために、自分のものではないログイン/ユーザー名を知っています。自分のユーザー名/パスワードを使用してWebサービスにアクセスする方法をクラックするかどうかを気にするSSLを介しても、プログラムを介した場合よりも多くのアクセスを許可しない場合、それは大したことではありません. 彼らは、おそらく月に一度変更することで簡単に修正できる管理者のユーザー名/パスワードなど、他の誰かのパスワードを学習/盗む必要があります。

HTTP 要求で接続文字列を送信すると述べました。誰かがハッキングするとすぐに、データベースのユーザー名/パスワードを自由に変更できますが、彼らはすでにそれをハッキングする方法を知っています. つまり、sa/DBOwner ユーザー名のパスワードをアプリに決して入れないでください。安全であるためには、ユーザー名とパスワードを必要とし、ユーザーの特権を決定する責任があるある種の Web サービスを通過する必要があります。サービスは独自のネットワーク上にある必要があるため、実際にデータベースに侵入するには Web サーバーまたは IIS をハッキングする必要があります。

一部の人々は、Web サービスの構成ファイルでデータベースのユーザー名/パスワードを暗号化することまで行っていますが、多くの管理者が構成ファイルにアクセスできる大企業で働いていない限り、実際には必要ありません。データベースにアクセスできる必要があります。私の意見では、データが非常に機密性が高く、ユーザー名/パスワードを知らないはずの構成ファイルにアクセスできる複数の人がいない限り、構成ファイルのプレーンテキストは問題ありません。これの全体的なポイントは、あなたの会社の人だけが設定ファイルにアクセスできるということです...あなたの会社にいないアプリケーションを実行している平均的なジョーは、IISサーバーに物理的にハッキングしない限り、これを取得する方法は決してないはずです. ...その場合、より大きな問題が発生します。

于 2012-05-04T03:40:24.820 に答える