在配置文件中硬编码用户名和密码的原因

问题描述 投票:0回答:1

浏览以多种 .NET 框架语言(ASP.NET、VB、C#)编写的遗留应用程序,我总是在他们的 app.configweb.config 连接字符串中找到各种 SQL 的硬编码和工作用户名和密码服务器和 IBM 数据库。这个网站上有很多关于保护这些信息的问题,但是当应用程序还要求身份验证时,将这些信息存储在配置文件中的原因是什么?每次我构建和运行时,这些用户是否出现在数据库审计日志中?

.net config app-config
1个回答
0
投票

这些遗留应用程序很可能依赖 ADO.NET 进行数据库连接。默认的 ConnectionString 属性包括服务器名称、数据库名称、用户名和密码。更安全的版本是使用 Windows 身份验证连接到数据库实例,它将使用“集成安全”标签而不是用户名和密码。

当应用程序还要求身份验证时,为什么将这些信息存储在配置文件中?

这个不清楚。你的意思是:

  • 应用程序会要求用户提供与配置文件中的连接字符串相同的用户名和密码吗?这意味着应用程序的每个用户都知道这个用户名/密码,这会带来安全风险。

  • 用户使用自己的用户名和密码登录应用程序,然后使用该用户名和密码建立与数据库实例的连接。如果是这种情况,那么每个用户帐户也被配置为数据库服务器中的用户,可以访问应用程序正在使用的数据库实例。这种类型的设置可以在一些多机构应用程序中看到,其中每个用户应该根据他们的机构/部门只访问特定的数据库实例。如果是这种情况,那么在用户登录应用程序之前,应用程序会使用配置文件中连接字符串中的用户名和密码来加载与身份验证相关的数据。

每次我构建和运行它时,这些用户是否出现在数据库审计日志中?

默认情况下不会,除非您在数据库服务器中设置DDL/DML/登录触发器专门跟踪数据库连接。

© www.soinside.com 2019 - 2024. All rights reserved.