c# mysql连接字符串问题
Posted
技术标签:
【中文标题】c# mysql连接字符串问题【英文标题】:c# mysql connectionstring question 【发布时间】:2011-08-02 16:52:43 【问题描述】:我在 c# 中工作,我正在使用 mysql .net 连接器与远程 mysql 数据库进行交互。在代码中包含连接字符串并直接通过命令对象使用 db 是否安全,或者我应该发布到 php 中间层以隐藏连接字符串?
提前致谢。
【问题讨论】:
【参考方案1】:在我看来:
你不应该把你的连接 直接在您的 C# 代码中的字符串 if 您的应用程序可能是 反编译 = 我的意思是 WinForms 应用程序。
如果您使用的是 Windows 应用程序,然后尝试实现一个 登录窗口。用户将通过的地方 他/她的用户名和密码。这 解决方案需要一个或多个 mysql 用户 对于每一个会拥有的人 访问系统。
如果您在网络上工作 应用程序,然后把你连接 web.config 文件中的字符串。
如果您正在处理应用程序 不受限制的访问,那么我 认为你应该实施一些 层...但请记住,永远不要通过 SQL查询作为纯文本通过 网络,因为有人可以嗅到它。 我会推荐某种 网络服务。
【讨论】:
它是一个 winform 应用程序。我的应用程序的 1 部分实现了一个 mysql 消息提示,其中频繁地对数据库进行查询,比如说每 2 秒,你会说 php 层会减慢速度吗? 我想说,安全第一!就像在日常生活中一样……每个代理/经纪人/中介都会增加成本(在这种情况下是时间)。如果您的查询执行速度很快(快于 2 秒),那么我认为这很好 - 也许应该实施某种队列或信号量。【参考方案2】:那么连接字符串只是存放在PHP中间件层,那有什么区别呢?它必须存储在某个地方。
我会保持简单并将其存储在您编写的 C# 应用程序的 app.config 或 web.config 中。
关于存储它的几个注意事项: - 生产连接字符串不应存储在版本控制中。 - 生产配置文件应存在于生产服务器上,并带有连接字符串。 - 为了增加安全性,您可以加密您的连接字符串 (http://msdn.microsoft.com/en-us/library/89211k9b(v=vs.80).aspx)
【讨论】:
不同之处在于连接字符串将始终不可见,因为 php 代码不是公开的(?),据我所知,任何 http 分析器都可以抓取从 a 发送到 b 的连接字符串,还是不正确?以上是关于c# mysql连接字符串问题的主要内容,如果未能解决你的问题,请参考以下文章
C# - 如何安全地存储 MySQL 连接字符串以便没人能看到它?
用C#连接操作MYSQL时,老是会超时,怎么处理SQL语句执超时啊,连接字符串里好像设置不了。
如何在不使用对话框的情况下为 C# 项目中的 MySQL 数据库设置连接字符串?