findbugs和数据库密码安全问题

2023-11-21

我使用以下代码来初始化数据库连接:


 public Connection getConnection() {
        try {
            if (null == connection) {
                String driverName = "com.mysql.jdbc.Driver"; // MySQL MM JDBC driver
                Class.forName(driverName);

                // Create a connection to the database
                String serverName = "localhost";
                String database = "database";
                String url = "jdbc:mysql://" + serverName + "/" + mydatabase; // a JDBC url
                String username = "username";
                String password = "password";
                connection = DriverManager.getConnection(url, username, password);
            }
            return connection;
        } catch (ClassNotFoundException cnfe) {
            cnfe.printStackTrace();
        } catch (SQLException sqle) {
            sqle.printStackTrace();
        }
        throw new NullPointerException("Cannot establish database connection...");
    }

我知道这样做是不好的做法,我也跑了FindBugs违反代码,并得到安全问题,内容如下:This code creates a database connect using a hardcoded, constant password. Anyone with access to either the source code or the compiled code can easily learn the password.

在不出现这种安全漏洞的情况下初始化数据库连接的最佳方法是什么?


从属性文件或 LDAP 或类似的密码中读取密码,并仅对用于运行软件的帐户进行安全访问(任何开发人员都不应有权访问)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

findbugs和数据库密码安全问题 的相关文章

随机推荐

  • 当我退出应用程序时 Android 服务停止

    我有一个带有服务的应用程序 服务由应用程序在创建方法的主活动中启动 当我退出应用程序时 出现问题 服务停止 有时立即重新启动 有时最近重新启动 我在4 1 2版本和2 3 6版本中进行了测试 2 3 6 版本中不再提供服务 我的做法有错吗
  • 使用boto3从公共存储桶下载

    我正在尝试列出 AWS 上公共存储桶中的文件 但我得到的最好结果是列出我自己的存储桶和我自己的文件 我假设 boto3 正在使用我在系统中配置的凭据来列出我的东西 如何强制它从特定存储桶列出 而不是我自己的存储桶 http sentinel
  • Qt QPlainTextEdit背景

    我想改变一个的背景颜色QPlainTextEdit 我该怎么做呢 修改纯文本编辑的调色板 示例程序 include
  • 错误java.lang.IndexOutOfBoundsException:无效索引0,大小在我的程序android中为0

    我开始在android中开发 我尝试修改Snake代码以包括对浏览器的调用以显示网页 当我执行我的应用程序时 它显示brwser中的页面 但是当我回到snake应用程序时 它显示了问题消息表明应用程序意外停止 并且 logCat 显示以下异
  • 我可以使用 pthread_kill 停止(暂停)pthread 执行吗

    如果我向线程发送 SIGTSTP 信号 线程会停止吗 或者换句话说 它的行为会像 SIGTSTP 和 SIGCONT 上的进程一样吗 提前致谢 来自 man 3p pthread kill 请注意 pthread kill 仅导致在给定线程
  • 通过 VS 2015 RC 进行非 Azure 部署

    I m trying out ASP NET 5 and all its new features on VS 2015 Enterprise RC To ensure smooth end to end deployment I then
  • 在 Windows 中创建临时目录?

    在 Windows 中获取临时目录名称的最佳方法是什么 我看到我可以使用GetTempPath and GetTempFileName创建一个临时文件 但是有没有相当于Linux BSD的mkdtemp创建临时目录的函数 不 没有与 mkd
  • 如何在 Microsoft Visual Studio 2012 中制作项目/解决方案的副本?

    正如标题所述 如何在 Microsoft Visual Studio 2012 中制作项目 解决方案的副本 就是这么简单的一个选项 却似乎不可用 好消息是 如果您安装了 Blend for Visual Studio 2012 它随我的 M
  • 将选定的语言选项存储在 cookie/localSession 中

    我希望我的 Next js 应用程序记住用户喜欢哪种语言 因此我想将其存储在客户端的 cookie 中 我有 2 种语言选项 英语和法语 默认情况下 语言设置为英语 无 cookie myapp com 但是一旦用户点击 EN 首选项 UR
  • Emacs 和 Git 在 Windows 上显示错误的时间

    Emacs 与系统时间相差两个小时 我尝试用谷歌搜索这个问题 但没有成功 我需要配置什么来纠正这个问题 我怀疑这是从 GMT 到我住的地方的差异 我在 GMT 2 时区 也就是说 如果我从系统时间 2 中减去 我将得到 Emacs 中的时间
  • 如何从 survfit 对象中提取值

    我创建了这个模型 model lt survfit Surv time status c sex model 输出是 Call survfit formula Surv time status c sex records n max n s
  • 突破filter()函数

    我想优化依赖于 filter 的函数 在某些情况下 当它们达到某些元素时 我想摆脱它们 例如 我可能有一个由不同元素组成的数组 或者 我只想实现一种 findFirst 功能 在这种情况下 函数继续执行到数组末尾似乎效率很低 这对于循环来说
  • 尝试模拟鼠标单击/拖动

    所以我试图模拟鼠标左键单击和鼠标左键释放来进行一些自动拖放 它目前在 C Winforms 中 是的 winforms 并且有点笨拙 基本上 一旦发送 点击 我希望它根据 Kinect 输入更新光标位置 Kinect 方面的事情很好 但我不
  • CSS3 100vh 在移动浏览器中不是恒定的

    我有一个非常奇怪的问题 在每个浏览器和移动版本中我都遇到了这种行为 当您加载页面时 所有浏览器都有一个顶部菜单 例如显示地址栏 当您开始滚动页面时 该菜单会向上滑动 100vh 有时仅针对视口的可见部分进行计算 因此当浏览器栏向上滑动时增加
  • 将本地目录挂载到 minikube 中的 pod 中

    我正在运行 minikube v0 24 1 在此 minikube 中 我将为我的 nginx 应用程序创建一个 Pod 我还想从本地目录传递数据 这意味着我想安装我的本地 HOME go src github com nginx进入我的
  • 如何使用特定凭据连接到 C# 中的 TFS 服务器?

    我正在尝试编写一个连接到 TFS 并检索工作项信息的 C 应用程序 不幸的是 似乎所有使用 TFS SDK 的示例都使用当前用户的默认凭据 即我的域登录信息 我发现的最接近的信息是使用TeamFoundationServer String
  • Objective-C 有相当于 java 的注释吗?

    Objective C 有相当于 java 的注释吗 我想做的是创建一个属性并能够以某种方式访问 有关它的一些元数据 我希望能够确定我的数组中应该包含什么类型的类 因此我想以某种方式对其进行注释以说明这一点 然后稍后可以通过运行时库之类的东
  • 具有较低基础 sdk 的应用程序如何工作?

    在 XCode 中我可以指定 Base SDK 我想知道这在幕后是如何运作的 例如 如果我在装有 iOS 7 的设备上运行应用程序 而我的基础 SDK 是 iOS 6 那么该应用程序为何具有旧的 外观和感觉 XCode 是否编译旧版 SDK
  • 查找并更新字典列表中字典的值

    我怎样才能找到dictionary有价值user7然后更新它match sum例如 在现有 4 的基础上添加 3 l user user6 match sum 8 user user7 match sum 4 user user9 matc
  • findbugs和数据库密码安全问题

    我使用以下代码来初始化数据库连接 public Connection getConnection try if null connection String driverName com mysql jdbc Driver MySQL MM