繁体   English   中英

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

[英]Can I connect to database with another language

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

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

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

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

如果您想要设置,您可以每月花费大约 10 美元获得一台 LightSail Windows 服务器。 尝试探索

你的担心不是空穴来风。 C#,或者就此而言,在 CLR 上运行的任何 .net 语言,将比C 或 C++ 这样的语言更容易检查。

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

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

至于你的问题本身 - 查看WCF命名管道(包括一个简单的例子)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM