【问题标题】:c# mysql connectionstring questionc# mysql连接字符串问题
【发布时间】:2011-08-02 16:52:43
【问题描述】:

我在 c# 中工作,我正在使用 mysql .net 连接器与远程 mysql 数据库进行交互。在代码中包含连接字符串并直接通过命令对象使用 db 是否安全,或者我应该发布到 php 中间层以隐藏连接字符串?

提前致谢。

【问题讨论】:

    标签: c# .net mysql connection-string


    【解决方案1】:

    在我看来:

    1. 你不应该把你的连接 直接在您的 C# 代码中的字符串 if 您的应用程序可能是 反编译 = 我的意思是 WinForms 应用程序。

    2. 如果您使用的是 Windows 应用程序,然后尝试实现一个 登录窗口。用户将通过的地方 他/她的用户名和密码。这 解决方案需要一个或多个 mysql 用户 对于每一个会拥有的人 访问系统。

    3. 如果您在网络上工作 应用程序,然后把你连接 web.config 文件中的字符串。

    4. 如果您正在处理应用程序 不受限制的访问,那么我 认为你应该实施一些 层...但请记住,永远不要通过 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 的连接字符串,还是不正确?
    猜你喜欢
    • 1970-01-01
    • 2011-12-02
    • 1970-01-01
    • 2014-10-28
    • 2011-09-03
    • 2011-08-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多