通过Internet连接MySQL和.net应用程序有危险吗?

时间:2013-02-21 14:48:51

标签: c# mysql .net mysql-connector

对于一个小项目,我需要在MySQL中存储一些数据。用户位于全球范围内并运行.net ClickOnce应用程序。访问的数据并不是真正的机密,即使有人可以访问,这也不会从隐私角度受到伤害。

从技术上讲,可以将MySQL数据库放在某个服务器上,让所有人通过互联网通过Connector/Net 连接。但这是否可取?

  1. 协议是否足够稳定/强大,可以处理缓慢的互联网连接?
  2. 这会是一个严重的安全风险。数据加密主题,但密码加密是。打开MySql数据库(端口)到Internet会有危险吗?
  3. 或者,我可以通过Web服务“包装”数据库访问,或者其他方式。但当然这是我想避免的一些开销。那么通过Internet连接MySQL是一个有效的选择吗?

    说明:

2 个答案:

答案 0 :(得分:5)

我建议为您的远程.NET应用程序实现REST Web服务层。然后,您可以让处理Web服务请求的服务器具有对数据库的本地访问权限,您不必担心MySQL协议是否能胜任该工作。

我的经验是,MySQL协议可能在WAN上工作,但它确实打算在本地网络上使用,因此WAN的延迟会使事务变得无法忍受。

此外,MySQL服务器必须公开其端口(默认情况下为3306)并且这并没有真正强化,所以除非你通过VPN或stunnel连接或者它不安全。

MySQL客户端/服务器协议不以明文形式传输密码,在发送之前在客户端上散列密码。但我知道MySQL Connector / NET不使用MySQL客户端,所以我不确定它是否在客户端使用密码哈希做同样的事情。

答案 1 :(得分:3)

1)该协议稳定,长期使用。

2)您不应该在本地网络之外共享您的数据库,这是一个很高的安全风险。您应该在数据库服务器上创建一些层,您将从数据库访问数据。您也可以在client-sidedb之间生成WCF服务器。