当前位置: 首页 > 知识库问答 >
问题:

系统或配置设置的外部控制(CWE ID 15)

松刚豪
2023-03-14

我们在扫描Veracode中的应用程序时遇到了安全威胁问题。获得“系统外部控制或配置设置(CWE ID 15)”。

使用(var连接=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;
        }

在这一行中,使用(var connection=new SqlConnection(connectionString))我们在安全扫描中得到了错误。你能不能请一些人提供建议来解决这个错误。

共有1个答案

轩辕涵亮
2023-03-14

Veracode检测输入。ServerName,输入。用户名和输入。密码由用户控制,这是一个风险。

确保实施了验证-如果可能,请与白名单或已知的预定义服务器名称进行比较。此外,检查输入的(注入的)最小池大小是否大于预期。使用框架类,例如使用SqlConnectionStringBuilder的框架类

之后提出此检查作为缓解措施。

 类似资料:
  • cmf_set_option($key, $data, $replace = false) 功能 设置系统配置,通用 参数 $key: string 配置键值,都小写 $data: array 配置值,数组 $replace: array 是否完全替换 返回 bool 是否成功

  • X2.2.0新增 sp_set_option($key,$data) 功能: 设置系统配置,通用 参数: $key: 配置的键名,英文下划线小写,最好加上自己的应用或插件名作为前级 $data:配置的值,数组 返回: 类型boolean,true设置成功 使用: $result = sp_set_option('portal_custom_settings',array('test'=>1));

  • cmf_set_option($key, $data, $replace = false) 功能 设置系统配置,通用 参数 $key: string 配置键值,都小写 $data: array 配置值,数组 $replace: array 是否完全替换 返回 bool 是否成功

  • 在 Serenity 平台,配置设置是只是简单的类,如: [SettingScope("Application"), SettingKey("Logging")] private class LogSettings { public LoggingLevel Level { get; set; } public string File { get; set; } publi

  • .NET 应用程序通常在 app.config(桌面应用程序)或 web.config(web应用程序)文件保存配置。 虽然,在 Web 应用程序用文件存储配置很普遍,但有时也需要在数据库表中存储一些配置,使其可用于网站群中的所有服务器,且只须在一个位置设置。 就像 IsolatedStorage 有应用程序(Application)、机器(Machine)、用户(User)等作用域,配置设置可能

  • 系统配置主要包括工单管理、系统、全局设置等内容。 日志审计 日志审计支持查看平台上的所有操作日志以及公有云的操作日志等。 工单 工单用于控制云联壹云平台资源的分配,支持对接第三方工单系统。 消息中心 云联壹云平台支持对接多种通知渠道接收系统消息等。 系统 用于查看消息中心和操作日志信息,并支持自定义企业信息、配置邮件短信服务器、设置公告以及常用系统等。 标签 标签用于标识虚拟机、裸金属、物理机等资