加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何在C#中安全地创建mysql数据库

发布时间:2020-12-15 21:10:03 所属栏目:百科 来源:网络整理
导读:我有一个C#程序,我想动态创建数据库.虽然只有特权用户才会使用此应用程序,但我希望明智地遵循最佳实践.我该怎么做呢?我不认为我可以在这种情况下使用参数化查询,因为我不想传入字符串,我想传入一个标识符. 这是我现在作为占位符进入的不安全方式: using (M
我有一个C#程序,我想动态创建数据库.虽然只有特权用户才会使用此应用程序,但我希望明智地遵循最佳实践.我该怎么做呢?我不认为我可以在这种情况下使用参数化查询,因为我不想传入字符串,我想传入一个标识符.

这是我现在作为占位符进入的不安全方式:

using (MySqlConnection connection = new MySqlConnection(connectionString))
        using (MySqlCommand command = connection.CreateCommand())
        {
            connection.Open();
            command.CommandText = "DROP SCHEMA IF EXISTS " + schema;
            command.ExecuteNonQuery();
            command.CommandText = "CREATE SCHEMA " + schema;
            command.ExecuteNonQuery();
        }

有什么想法吗?

解决方法

您可以使用反引号分隔符来确保正确引用字符串,并确保将用户输入的内容用作文字标识符.

见:http://dev.mysql.com/doc/refman/5.0/en/identifiers.html和Using backticks around field names

这样,传递给服务器的命令看起来像:“DROP SCHEMA IF EXISTS foo”,它将容忍使用保留字和其他不正确的字符串值作为标识符.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读