系统或配置设置的外部控制(CWE ID 15)
External Control of System or Configuration Setting (CWE ID 15)
我们在 Veracode 中扫描应用程序时遇到安全威胁问题。获得“系统或配置设置的外部控制(CWE ID 15)”。
扫描报告 using (var connection = new SqlConnection(connectionString))
我们正在检查是否 "SQLConnectionExists" 通过传递连接字符串,
string sqlConnString = SqlHelper.GetSQLConnectionString(input.ServerName, dbName, isWinAuth, input.UserName, input.Password);
if (!DBUtil.CheckSQLConnectionExists(sqlConnString))
{
_ValidationMessage += "Database Unreachable \n";
isValid = false;
}
public static bool CheckSQLConnectionExists(string connectionString)
{
bool isExist = false;
try
{
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
connection.Close();
isExist = true;
}
}
catch (Exception ex)
{
Logger.Instance.Log(LogLevel.EXCEPTION, "CheckSQLConnectionExists Exception : " + ex.Message);
}
return isExist;
}
public static string GetSQLConnectionString(string servername, string db, bool isWinAuth, string username, string password)
{
System.Data.SqlClient.SqlConnectionStringBuilder builder = new System.Data.SqlClient.SqlConnectionStringBuilder();
builder["Data Source"] = servername;
builder["Initial Catalog"] = db;
if (isWinAuth)
{
builder["Integrated Security"] = "SSPI";
builder["Trusted_Connection"] = "Yes";
}
else
{
builder["Persist Security Info"] = false;
builder["User ID"] = username;
builder["Password"] = password;
}
return builder.ConnectionString;
}
在这一行 using (var connection = new SqlConnection(connectionString))
我们在安全扫描中遇到了错误。能否请一些人提供解决此 Veracode 错误的建议。
Veracode 检测到 input.ServerName、input.UserName 和 input.Password 为 user-controlled,这是一个风险。
确保实施验证 - 如果可能,与白名单或已知的预定义服务器名称进行比较。此外,检查输入的(注入的)最小池大小是否大于预期。使用框架 类,例如您使用的 SqlConnectionStringBuilder
之后建议将此支票作为 mitigation。
我们在 Veracode 中扫描应用程序时遇到安全威胁问题。获得“系统或配置设置的外部控制(CWE ID 15)”。
扫描报告 using (var connection = new SqlConnection(connectionString))
我们正在检查是否 "SQLConnectionExists" 通过传递连接字符串,
string sqlConnString = SqlHelper.GetSQLConnectionString(input.ServerName, dbName, isWinAuth, input.UserName, input.Password);
if (!DBUtil.CheckSQLConnectionExists(sqlConnString))
{
_ValidationMessage += "Database Unreachable \n";
isValid = false;
}
public static bool CheckSQLConnectionExists(string connectionString)
{
bool isExist = false;
try
{
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
connection.Close();
isExist = true;
}
}
catch (Exception ex)
{
Logger.Instance.Log(LogLevel.EXCEPTION, "CheckSQLConnectionExists Exception : " + ex.Message);
}
return isExist;
}
public static string GetSQLConnectionString(string servername, string db, bool isWinAuth, string username, string password)
{
System.Data.SqlClient.SqlConnectionStringBuilder builder = new System.Data.SqlClient.SqlConnectionStringBuilder();
builder["Data Source"] = servername;
builder["Initial Catalog"] = db;
if (isWinAuth)
{
builder["Integrated Security"] = "SSPI";
builder["Trusted_Connection"] = "Yes";
}
else
{
builder["Persist Security Info"] = false;
builder["User ID"] = username;
builder["Password"] = password;
}
return builder.ConnectionString;
}
在这一行 using (var connection = new SqlConnection(connectionString))
我们在安全扫描中遇到了错误。能否请一些人提供解决此 Veracode 错误的建议。
Veracode 检测到 input.ServerName、input.UserName 和 input.Password 为 user-controlled,这是一个风险。
确保实施验证 - 如果可能,与白名单或已知的预定义服务器名称进行比较。此外,检查输入的(注入的)最小池大小是否大于预期。使用框架 类,例如您使用的 SqlConnectionStringBuilder
之后建议将此支票作为 mitigation。