当前位置: 首页 > 知识库问答 >
问题:

C#. NET和Java连接到外部数据库和发送Web请求时的安全性如何?

柴彬
2023-03-14

我正在创建3个应用程序,它们是为不同的平台(.NET(C#)、Android(Java)和PHP)编写的。我使用C#作为将在Windows PC上运行的WPF应用程序,使用PHP作为服务器端,使用Java作为移动应用程序。我使用的是一个MySQL数据库,其中存储了3个应用程序将要使用的所有信息
当我需要用PHP做一些特定的事情时,我正在使用对Apache服务器的web请求(基本上是JSON和POST)<但是,安全性有多高:

  • 当我通过C#和Java连接到MySQL数据库时?
  • 当我用C#和Java发送GET和POST Web请求时?

你能以某种方式监视设备(个人电脑/Android设备)和服务器之间的流量,找出数据库的用户和密码,甚至获取应用程序发送的后请求参数吗?
因为我知道有很多网络监控软件,如果这是可能的,我不会感到惊讶。
如果是,那么如何避免呢?

共有3个答案

金正阳
2023-03-14

为什么你要直接从Android/WPF应用程序连接到数据库?

如果MySQL数据库位于一个安全的服务器上,也许可以将数据库调用/服务封装在PHP解决方案中实现的RESTful API中,然后从客户端应用程序调用这些API,这样还可以避免用多种语言(Java/C#)编写SQL语句和特定于数据库的任务

不知道你的情况会让你很难...

袁秦迟
2023-03-14

当你的流量被注意到或拦截时,读者可以自由解读。您可以在浏览器的控制台窗口中看到此类流量的示例,或者如果您想查看实际的应用程序流量,请使用代理(例如Fiddler2)。

如果你想阻止你的流量被读取,你必须采取措施确保授权和访问控制。可以通过使用TLS/SSL对流量进行加密来实现这一点。如果您有webendpoint,通常可以通过库配置启用https。您可能需要将其作为参数传递给构建连接的代码。

此外,最好不要泄露应用程序输出中的敏感信息。您将希望使用强密码,并避免以明文形式存储或发送这些密码。

我还建议你分解小尺寸的安全需求。

例子:

你使用了很多不同的技术。这些都有与安全相关的最佳实践和指导方针。将应用程序与网络/运营资产分开。加密通信是应用程序中的一项措施。而MySQL配置的工作方式则完全不同,主要是通过配置。

皇甫建木
2023-03-14

“Java和C#有多安全?”这不是一个完全正确的问题,因为答案取决于你做了什么,而不是语言中的特性。对于以各种方式实现各种类型的安全性,它们都有很多很好的选择。在你的情况下,真正重要的是机器如何通信。

你能以某种方式监视设备(PC/Android设备)和服务器之间的流量,并找出数据库的用户和密码吗

你的客户端(个人电脑和Android设备)不应该直接连接到你的数据库。他们应该向你的服务器提交请求,在那里你有更多的控制权,可以验证客户机并验证他们的数据。然后服务器连接到数据库。

如果客户机直接调用DB,则凭证不仅会通过internet传输,而且还必须以某种形式出现在客户机的本地。这意味着有人可能会破解你的应用程序并访问它们。

或者甚至获取应用程序发送的post请求参数?

是的,这些可以被截取和读取。再次强调,防止这种情况的发生是一个如何实现沟通的问题。使用HTTPS协议,您可以在C#和Java中使用HTTPS协议,您请求的内容将受到保护,不会被第三方截获。

 类似资料:
  • 问题内容: 问题 因此,一段时间以来,我一直在尝试使用不同的AJAX方法将数据发送到将要处理并存储在MySQL数据库中的服务器。 AJAX请求命中的页面使用PHP的PDO准备好的语句来保存数据,因此MySQL注入并不是真正的问题,还需要处理密码或需要加密的数据,这不是我要的这里。我的问题更多地涉及从客户端传输到服务器时如何确保数据的安全性。 方法 我目前有(对于下面包含的登录示例): 域上运行的S

  • 我已经创建了一个Spring启动应用程序,我没有使用内存中的H2数据库,而是安装了用于H2数据库的exe并在外部使用它。现在我想将我的Spring启动应用程序与这个外部H2数据库连接起来。我已经添加了依赖项,我已经在application.properties文件中添加了所有必需的属性(你可以看到下面)。此外,我还创建了一个带有注释的Entity类。但是当我尝试连接数据库时,它即使使用不同的URL

  • 问题内容: 我正在编写一个Servlet,该Servlet通过访问和修改数据库中的某些表来处理每个请求。我希望与数据库的连接是线程安全的。我不想为此使用已经存在的库/框架(spring,hibernate等)。 我知道我可以通过以下方式为此使用java的ThreadLocal: 每次调用时,新连接都会添加到对象中,然后在释放连接时将其删除。 这是这样做的正确方法,还是它本身应该扩展类?还是有一种更

  • 问题内容: 我目前正在为我教会的大学团体使用一个网站,并且开始对我所写内容的安全性有些担心。例如,我使用以下功能: 每当我进行某种查询时就连接到数据库。我总是使用PDO准备好的语句来防止任何用户输入的SQL注入,并且我使用htmlspecialchars进行转义,然后再输出。我的问题是: 如何保护数据库的用户名和密码? 我不知道是否有人可以查看我的PHP文件的源,但如果可以,我只能想象我会被缠住。

  • 问题内容: 我正在尝试为请求和响应应用程序创建桌面客户端。 我能够轻松地执行GET请求。但是我想知道是否有人可以帮助我确定如何进行JSON请求和响应。并将其解析为字符串,从那里我可以锻炼如何将其全部切开 问题答案: Json.net在.net世界中无处不在。

  • 本文向大家介绍C#连接数据库和更新数据库的方法,包括了C#连接数据库和更新数据库的方法的使用技巧和注意事项,需要的朋友参考一下 对数据库的操作总体可以分为两类:查询(select)和更新(insert,delete,update)。为什么这样来分呢?仔细看看两类的区别,select只是从数据库中将数据拿出来使用,而其余三者都会对数据库的物理数据进行修改。这篇文章将接着阐述更新数据。 更新数据库信息