c# - 是否可以反汇编程序来检索数据库凭证或更改 SQL 查询?

标签 c# java database programming-languages disassembly

我开始思考这样一个问题:是否可以反汇编程序检索它用于连接到某个程序的凭据数据库,或者可能在运行时拦截程序并操纵(SQL)查询(不是谈论 SQL 注入(inject))。

也许这是一个荒谬的想法,但我需要知道我的客户收到的程序是否应该使用仅有权访问(和权限,即只读)特定表的帐户。

最佳答案

这绝对不是一个荒谬的想法 - 有很多工具可以将程序反汇编为源代码。在 .NET 世界中,您有 ReflectorILSpy例如,大多数语言都有等效的东西。

如果用户名或密码以纯文本形式出现在源代码中,那么使用反汇编工具很容易获得它。如果它看起来是加密的,但加密算法和 key 是源代码的一部分,那么获取它就很容易了。

要解决此问题,在 .NET 世界中您可以 store an encrypted password在配置文件中。

或者,您可以将数据库配置为使用 domain authentication ,其中用户的域帐户透明地用于访问,而不是硬编码的用户名/密码。

最后,您应该始终使用 Principle of Least Privilege尽可能 - 只允许用户执行所需操作的最小子集。

关于c# - 是否可以反汇编程序来检索数据库凭证或更改 SQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12250135/

相关文章:

java - 采用无限嵌套数组的方法的参数类型是什么?

java - 如何在 JSP 中获取我的按钮的值并将其显示在 tomcat 日志和 eclipse consol 上

php - 使用 PHP 将注册商标符号/版权符号插入 MySQL

database - 在数据库中处理退款或/存储积分的最佳方式?

c# - 将时间转换为十进制

c# - 如何并行运行specflow特征文件?

c# - 在 C# 中获取我的屏幕名称

java - NullPointerException - 尝试调用虚拟方法 `notifyDataSetChanged()` - 无法看到创建的列表

php - 在 mysql 中编写此查询时出现问题(在论坛中标记已读消息)

c# - C# 应用程序和非托管 C++ 应用程序之间的进程间通信