1

My scenario is as follows, a .NET 4.0 Solution with several projects (one host and some dlls), one (dll) in particular making use of the MySQL .NET Connector in order to only call upon stored procedures. I've also signed all my assemblies with a private key.

I'm curious if a hacker could somehow obtain the password to the database user from the connection string (even though that user only has permission to EXECUTE).

Also I'm curious whether a hacker would be able to find out the stored procedures I call on and whether he could Select/Insert/Delete arbitrarily with the use of my stored procedures.

All this with the presumption that the hacker only has a copy of the compiled solution.

4

2 に答える 2

1

プロジェクト内のすべてのコードが、SQL インジェクションの脆弱性やローカル ファイル インクルージョンの脆弱性などから安全であると確信していますか (そして、進化しても安全であり続けるでしょう)?

于 2012-05-10T10:31:34.937 に答える
1

コードにユーザー名とパスワードをハードコーディングした場合、または資格情報を暗号化されたファイルに保存したとしても、暗号化キーがコードにハードコーディングされている場合、.NET アセンブリはコンパイルされていないため、簡単にハッキングできます。マシンコードに。.NET アセンブリをビルドすると、VB.NET コードが MSIL コードに変換されます。MSIL コードは、まだ読みやすい低レベルのプログラミング言語です。Microsoft は、MSIL 逆アセンブラーと呼ばれる無料のツール (.NET Framework SDK の一部として) を提供しています。これにより、コンパイルされたアセンブリのすべての MSIL コードを簡単に表示できます。MSIL コードを簡単に取得して VB または C# コードに "逆コンパイル" できるツールが多数あります。.NET 逆コンパイラを使用して元のコードを簡単に再現できることに驚かれることでしょう。PDBが利用可能な場合、出力は元のコードと驚くほど似ています。そのため、サードパーティのコード難読化ツールやアセンブリ暗号化ツールを使用していない限り、"コンパイルされた" アセンブリは非常に簡単にリバース エンジニアリングされます。通常、これは大したことではありませんが、ハッキングを回避することが大きな関心事である場合は、コードに秘密を入れるべきではありません。

于 2012-05-10T12:33:23.087 に答える