微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我可以用另一种语言连接到数据库吗

如何解决我可以用另一种语言连接到数据库吗

嗨,我有一个 C# WinForms 应用程序。我在 C# 上编写了基本方法。但我需要一个登录表单,它并不安全,因为像 dotpeek 这样的应用程序可以检查源代码并破解它。我可以与用另一种语言(java、c、python 等)编写的另一个应用程序通信吗?我需要将输入数据从 WinForms C# 发送到另一个应用程序,然后它应该连接到数据库并检查登录是否成功,然后将一个值返回给 C# WinForms 应用程序。这可能吗,我该如何实现?我不想用另一种语言编写所有应用程序,因为 C# 有很好的方法来处理图像/像素和 gui 支持,内存使用量非常小。

解决方法

我明白你想表达的意思。 需要承认的一件事是,您无法完全避免反编译应用程序。 C# 或 C++,任何东西都可以逆向工程。

如果您仍然需要它,一个相对安全的方法是不要将检查应用程序放在客户端的机器上。创建 API 并将数据库托管在服务器上。 然后从您的 Windows 窗体应用程序向服务器发起一个 Http 请求。

然后您就可以完全控制登录 API 和数据库。许多应用程序使用与此类似的 OAuth。另一个示例是应用使用在线 API 验证其许可证。

如果您想进行设置,您可以以每月 10 美元左右的价格获得 LightSail Windows 服务器。尝试探索

,

您的担忧并非毫无根据。 C#,或者就此而言,任何在 CLR 上运行的 .net 语言,都比 C 或 C++ 之类的语言更容易检查。

话虽如此,没有任何应用程序是完全安全的,应用程序之间的通信也有其自身的问题。一个应用如何验证另一个?等等。您可以创建一个与数据库通信的 Web 服务(并使用 HTTP 或 WCF 与 Web 服务通信),这意味着您的应用程序将无法直接访问数据库,但这只会保护数据库免受您的攻击应用程序,它仍然允许有人检查您的应用程序并使用网络服务,冒充您的应用程序。此外,您需要在某个网络托管服务上托管网络服务,然后您必须相信该服务不会检查您的应用......

您可以通过将密码等存储为字节数组来减少问题,但无论您做什么,我都不知道有什么方法可以完全保护您的应用程序。如果您的计算机上有恶意应用/参与者,他们可以检查您的应用。

至于您的问题本身 - 查看 WCFnamed pipes (includes a simple example)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。