通过 Internet 连接 MySQL 和 .net 应用程序是不是存在危险?
Posted
技术标签:
【中文标题】通过 Internet 连接 MySQL 和 .net 应用程序是不是存在危险?【英文标题】:Is connecting MySQL and .net application via Internet a hazard?通过 Internet 连接 MySQL 和 .net 应用程序是否存在危险? 【发布时间】:2013-02-06 22:47:21 【问题描述】:对于一个小型项目,我需要在 mysql 中存储一些数据。用户遍布世界各地并运行 .net ClickOnce 应用程序。访问的数据并不是真正的机密,即使有人可以访问,从隐私的角度来看也不会造成损害。
从技术上讲,可以将 MySQL 数据库放在某处的服务器上,并让每个人都通过互联网通过Connector/Net 进行连接。但这是否可取?
-
该协议是否足够稳定/健壮,足以处理缓慢的互联网连接?
这是否会带来严重的安全风险。数据加密不是主题,但密码加密是。将 MySql 数据库(端口)打开到 Internet 会有危险吗?
或者,我可以通过 Web 服务或其他方式“包装”数据库访问。但当然这是我想避免的一些开销。那么通过 Internet 连接 MySQL 是否有效?
备注:
MySQL connection with VB.NET via internet! 没有重复项 所以Connecting to the database via the internet 不太具体,截至今天没有答案。【问题讨论】:
【参考方案1】:1) 本协议稳定,使用时间长。
2) 您不应该在本地网络之外共享您的数据库,这是一个很高的安全风险。您应该在您的数据库服务器上创建一些层,您将从数据库中访问数据。你也可以在client-side
和db
之间建立WCF服务器。
【讨论】:
【参考方案2】:我建议为您的远程 .NET 应用程序实现一个 REST Web 服务层以与之通信。然后,您可以让处理 Web 服务请求的服务器对数据库进行本地访问,而您不必担心 MySQL 协议是否能胜任这项工作。
我的经验是 MySQL 协议可能在 WAN 上工作,但它实际上是在本地网络上使用的,因此 WAN 的延迟会使事务处理速度慢得无法忍受。 p>
此外,MySQL 服务器必须公开其端口(默认情况下为 3306),这并没有真正加强,因此除非您通过 *** 或 stunnel 或其他不安全的东西连接。
MySQL 客户端/服务器协议不会以纯文本形式传输密码,它会在发送之前在客户端对密码进行哈希处理。但是我知道 MySQL Connector/NET 不使用 MySQL 客户端,所以我不确定它是否在客户端对密码哈希做同样的事情。
【讨论】:
以上是关于通过 Internet 连接 MySQL 和 .net 应用程序是不是存在危险?的主要内容,如果未能解决你的问题,请参考以下文章
UIWebView 和 NSURLRequest 上没有 Internet 连接处理 [重复]
下载Navicat for MySQL,安装后连接失败怎么办?