C# 连接字符串到数据库.最佳做法

本文关键字:最佳 数据库 连接 字符串 | 更新日期: 2023-09-27 18:34:54

我总是在网上遇到很多教程。

下面是 Visual C# 中命令按钮的连接字符串,用于尝试是否建立连接。

我的观点是这样的。在程序中输入用户名和密码是否足够好?像这样:用户名=根;密码 = 管理员 。当涉及到安全性时,它是否容易受到攻击?就像SQL注入或其他什么一样。

这样编码对吗?

try
        {
            string myConnection = "datasource = localhost; port = 3306; username = root; password = admin";
            MySqlConnection myConn = new MySqlConnection(myConnection);
            MySqlDataAdapter myDataAdapter = new MySqlDataAdapter();
            myDataAdapter.SelectCommand = new MySqlCommand(" SELECT * database.edate ;", myConn);
            MySqlCommandBuilder cb = new MySqlCommandBuilder(myDataAdapter);
            myConn.Open();
            DataSet ds = new DataSet();
            MessageBox.Show("Connected");
            myConn.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }

C# 连接字符串到数据库.最佳做法

为了获得最佳灵活性,您应该将连接字符串存储在Web.config的配置文件App.config中。有一个特殊的部分ConnectionStrings其中包含连接字符串的键值对。

代码

反汇编可能会破坏存储在代码中的安全信息。配置文件可以加密。

演练:使用受保护的配置加密配置信息

如果有人掌握了您的可执行文件,他可以对密码和用户名进行逆向工程。如果你把它存储在app.config中,那就更容易了。处理SQL SERVER的最佳方法是Windows身份验证(如果可能(如果您处理 mysql/oracle,或者如果 Windows 身份验证不是一种选择,您应该找到一种方法来屏蔽这些名称/密码(您可以使用某种算法从"加密"文本中创建真实密码并在程序中运行它( - 它也可以逆转,但效果更大。更好的方法是使用某种证书。我自己没有做过。

SQL 注入与连接字符串无关,它更与将参数传递给查询的方式有关,以及是否在传递用户输入之前检查用户输入(如果使用字符串连接而不是更安全的方法(

在程序本身中建立连接可能不会给应用程序带来问题,但作为一种约定,最好在代码中使用 ConfigurationManager 启动连接,并在 .config 文件中建立与数据库的连接。

此外,可以为 .config 文件提供安全性。

使用配置(app.config 或 web.config(的好处

  1. 您可以对配置强制实施安全性
  2. 您可以使用配置转换(Web.QA.Config、Web.Production.Config 等(根据环境配置连接字符串或其他设置 - 访问 http://msdn.microsoft.com/en-us/library/vstudio/dd465318(v=vs.100(.aspx