保护Delphi应用程序中的字符串

Mat*_*ttl 0 sql delphi sql-injection

我们有一个驱动MS SQL Server数据库的Delphi 2006应用程序.

我们发现了一个漏洞,可以将可执行文件加载到十六进制编辑器中并修改SQL.

我们的长期计划是将此SQL移动到CLR存储过程,但这有一段距离,因为我们的许多客户端仍然使用SQL 2000.

我们已经考虑过混淆字符串,是否有人建议使用这个工具?

有没有更好的解决方案,也许是代码签名?

Leo*_*era 9

抱歉是生硬,但如果你想在你的可执行文件中应用"安全"措施,你就注定要失败了.没有加扰模式将保留普通黑客.

您还没有解释您的应用程序是如何设计的.数据库是由您托管还是驻留在您的客户端?如果是后者,那么就忘记安全性并开始聘请律师以获得良好的保密合同,以便客户表现出色.如果是前者,那么使用存储过程是最简单的方法.


gbn*_*gbn 7

如果嵌入式SQL被黑客攻击,则意味着您的数据库非常开放,任何拥有MSQRY32.EXE(即MS Office)的人都可以获取您的数据.

如果您是供应商,那么您不能依赖于在您的客户端启用CLR.那么,为什么不在与版本无关的数据库中使用非CLR存储过程和正确的权限?

  • 正如我在回答中所说,在这种情况下,你绝对没有办法保护这些数据.无论你放入多少个栅栏,在某些时候你需要内存中的实际数据,并且可以很容易地读取. (3认同)

War*_* P 6

这不是一个漏洞.如果您的计算机容易让人们在本地修改EXE,那就是您的漏洞.

所有EXE都可以被黑客入侵,如果有人拥有本地管理员帐户访问权限,那么您的游戏在接近资源字符串之前就已经过了很长时间.