gpt4 book ai didi

c# - 如何进行服务器端 C# SQL 验证

转载 作者:行者123 更新时间:2023-11-30 22:00:54 24 4
gpt4 key购买 nike

我见过很多例子都使用这样的东西,这是客户端身份验证:

bool legitlogin = val_log(username, password);
if (legitlogin)
{
Form2 objFrmMain = new Form2();
this.Hide();
objFrmMain.ShowDialog();
this.Close();
return;
}

但是程序破解者所要做的只是将 if 语句更改为

bool legitlogin = val_log(username, password);
if (!legitlogin)
{
Form2 objFrmMain = new Form2();
this.Hide();
objFrmMain.ShowDialog();
this.Close();
return;
}

然后他们就可以用C#重新编译并分享你程序的破解版了。我知道存在混淆等等,但这并不能提供足够的保护。

那么可以使用什么策略来不在客户端内部进行检查,而是让服务器进行检查?

在这个例子中,服务器是一个MySQL服务器。

最佳答案

正确理解混淆

好吧,在给你任何答案之前让我澄清一些事情:如今,就 .NET 编程而言,我们已经消除了闭源程序和开源程序之间的界限:开源去-混淆器、不断壮大的社区、越来越多的活跃成员等等。因此,不仅任何黑客都可以做到这一点:

bool legitlogin = val_log(username, password);
if (!legitlogin)
{
Form2 objFrmMain = new Form2();
this.Hide();
objFrmMain.ShowDialog();
this.Close();
return;
}

但他们也可以只获取您代码中有趣的部分并执行此操作:

Form2 objFrmMain = new Form2();
this.Hide();
objFrmMain.ShowDialog();
this.Close();

简而言之,他们可以为所欲为。我记得论坛上有一个老黑客破解了一个程序并使用 Code-Cave 技术感染了它,这真的很难通过 Olly/ASM 做到,但就 .NET 而言相当容易,例如著名的开源反编译器 DnSpy 甚至可以让您在 C# 语法级别编辑编译后的文件! (see screenshot here)。

总而言之,你不可能安全。

纯粹的解决方案

因此,您可以阻止黑客使用强大的混淆器反编译/反混淆您的软件,这些混淆器是市场上的新产品,它们的构建是为了满足更高程度的保护:

  1. 如果你没有钱 = ConfuserEx(自定义很容易,因为它是开源的)
  2. 如果你有钱 = BabelforNetEazfuscator
  3. 如果您有钱但只有一点点 = NetGuard.IO

这 3 种产品是为了解决难题而设计的,并且主要会阻止你的黑客 :)

关于c# - 如何进行服务器端 C# SQL 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43402556/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com