Tôi đang sử dụng đoạn mã sau để khởi tạo kết nối cơ sở dữ liệu:FindBugs và bảo mật mật khẩu cơ sở dữ liệu vấn đề
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...");
}
và tôi biết đó là thói quen xấu để làm điều đó, tôi cũng chạy FindBugs
chống lại các mã, và nhận được sự an toàn vấn đề nói như sau: 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.
Cách tốt nhất để khởi tạo kết nối cơ sở dữ liệu mà không bị vi phạm bảo mật này là gì?
Nó thực sự là một vấn đề nếu bạn có nhiều hơn một nhà phát triển trong công ty của bạn. ** Không được ** sản xuất ** mật khẩu ** cho tất cả các nhà phát triển cho môi trường an toàn. Mã nguồn thường được lan truyền trên nhiều hệ thống: SCM, CI, máy tính để bàn, v.v. Xem các câu trả lời khác. – h3xStream
@ h3xStream hoàn toàn chính xác. Bài đăng này rất cũ, tha thứ cho tôi. – rook
Tôi sẽ yêu cầu chỉnh sửa .. và sau đó thấy rằng bạn đã làm. +1 – h3xStream