7

私は次のことをしました...

private static IDbConnectionProvider CreateSqlConnectionProvider(DbConfig dbConfig)
{
    return new QcDbConnectionProvider(() =>
        {
            SqlConnectionStringBuilder csBuilder = new SqlConnectionStringBuilder();

            if (!string.IsNullOrEmpty(dbConfig.DataSource)) 
                csBuilder.DataSource = dbConfig.DataSource;

            if (!string.IsNullOrEmpty(dbConfig.Database))
                csBuilder.InitialCatalog = dbConfig.Database;

            .
            .
            .
            .

            return new SqlConnection(csBuilder.ConnectionString);
        });
}

クライアントはコード分析を行うためにVERACODEツールを使用しており、VERACODEは「信頼されていない初期化」の欠陥を検出しました

return new SqlConnection(csBuilder.ConnectionString);

また、dbConfig以下に示すように初期化されています...

DbConfig configDbConfig = new DbConfig
{
    Database = codeFile.ConfigurationDb,
    DataSource = codeFile.DataSource,
    IntegratedSecurity = sqlCredentials.UseWindowsAuthentication ? 1 : 0,
    UserId = sqlCredentials.UseWindowsAuthentication ? null : sqlCredentials.SqlUserName,
    ClearTextPassword = sqlCredentials.UseWindowsAuthentication ? null : sqlCredentials.SqlUserPassword
};

この欠陥を修正するには、他に何をする必要がありますか? また、このリンクに従って、接続文字列をSqlConnectionStringBuilder安全に作成できる を使用して接続文字列を作成しています。

前もって感謝します...

4

2 に答える 2