【问题标题】:DataBase Connection String Parameter Pollution fortify issue数据库连接字符串参数污染强化问题
【发布时间】:2019-12-27 18:25:24
【问题描述】:

我开发了一个工具,当我运行 fortify 时,我遇到了 6 个与 Db 连接字符串相关的关键问题,指出“将未经验证的输入连接到数据库连接可能允许攻击者覆盖请求参数的值。一个攻击者可能能够覆盖现有参数值、注入新参数或利用无法直接访问的变量。”

 public bool sqlDbValidateUser(string databaseHostname, string databaseName, string databaseUsername, string databasePassword)

    {
        _logger.Info("starting sql DB validation");
        string ConnectionString = "Data Source=" + databaseHostname + "; " +
                    "Initial Catalog=" + databaseName + ";" +
                    "User id=" + databaseUsername + ";" +
                    "Password=" + databasePassword + ";";
        using (SqlConnection connection = new SqlConnection(ConnectionString))
        {
            try
            {
                connection.Open();
                return true;
            }
            catch(Exception)
            {
                return false;
            }
            finally
            {
                if(connection !=null)
                {
                    connection.Close();
                }
            }
        }            

    }

【问题讨论】:

    标签: string parameters connection fortify dbconnection


    【解决方案1】:

    在使用 Sql 数据库时,字符串连接是纯粹的邪恶。做你正在尝试的正确方法是,替换此代码:

        string connectionString = "Data Source=" + databaseHostname + "; " +
                              "Initial Catalog=" + databaseName + ";" +
                                      "User id=" + databaseUsername + ";" +
                                     "Password=" + databasePassword + ";";
    

    使用此代码:

        string connectionString;
    
        try
        {
            var builder = new SqlConnectionStringBuilder();
            builder.DataSource = databaseHostname;
            builder.InitialCatalog = databaseName;
            builder.UserID = databaseUsername;
            builder.Password = databasePassword;
    
            connectionString = builder.ToString();
        }
        catch
        {
            return false;
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多