C#连接字符串到database.best的做法?

时间:2014-12-21 08:21:59

标签: c# mysql database security

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

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

我的观点是。输入用户名&程序中的密码? 像这样:username = root;密码= admin。说到安全性它是否容易受到攻击?比如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);
        }

4 个答案:

答案 0 :(得分:3)

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

代码分解可能会影响存储在代码中的安全信息。配置文件可以加密。

Walkthrough: Encrypting Configuration Information Using Protected Configuration

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

使用配置(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