티스토리 뷰
관련 글
application.yml의 필드를 environment variable로 넘기는 법.
https://krksap.tistory.com/2183
다음 코드는 DB에 연결 되었는지를 테스트 하는 코드 입니다. 하지만 보안적으로 치명적인 문제가 있습니다. db url과 계정, password가 바로 노출 된다는 것입니다.
public class UseEnv {
public void check() throws SQLException, ClassNotFoundException {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/test-db1",
"root", "12345678");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("show databases");
rs = st.getResultSet();
while (rs.next()) {
String str = rs.getString(1);
System.out.println(str);
}
}
}
치명적인 부분은 이 부분입니다. 초보자 분들은 혹은 경력자분들도 귀찮아서 그냥 쓰다가 git에 올라가버리면 바로 해킹당하고 비트코인을 요구하는 내용이 db에 남겨져 있을것입니다.
소스코드에 db접속정보, password를 넣는일은 한번이라도 하지 마시고 결코 습관을 들이지 마시기 바랍니다. 언젠가 큰일이 날 수 있습니다.
.getConnection("jdbc:mysql://localhost/test-db1",
git에 위 소스코드를 올리고 조금만 기다리시면 DB가 해킹당하고 다음 내용이 table에 남아있습니다. 더미 데이터 10만 row정도가 들어 있었는데 0.26을 달라고 합니다. 한 500만원정도 되죠?
해결 방법
environment variable을 쓰시면 됩니다. 다음과 같이 getenv()를 쓰면 됩니다.
import static java.lang.System.getenv;
public class UseEnv {
public void check() throws SQLException, ClassNotFoundException {
Map<String, String> env = getenv();
String dbHost = env.get("DB_HOST");
String dbUser = env.get("DB_HOST");
String dbPassword = env.get("DB_HOST");
Class.forName("com.mysql.cj.jdbc.Driver");
Connection con = DriverManager.getConnection(dbHost, dbUser, dbPassword);
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("show databases");
rs = st.getResultSet();
while (rs.next()) {
String str = rs.getString(1);
System.out.println(str);
}
}
}
앞에서 선언한 값들은 Intellij에서 env로 전달 할 수 있습니다.
Environment Variable 을 로컬에서 jvm으로 전달하는 방법
Edit - Configurations로 갑니다.
Environment variables에서 오른쪽에 목록 버튼을 누릅니다.
+버튼을 눌러서 3개를 추가 합니다. DB_HOST, DB_USER, DB_PASSWORD
접속 정보를 입력하면 됩니다.
end.
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- docker container case
- docker container tissue box
- Linux
- docker container tissue
- 도커티슈박스
- Sh
- 개발자
- 도커티슈케이스
- docker container whale
- vim
- 이직
- 도커컨테이너
- 도커각티슈박스
- 2017 티스토리 결산
- shellscript
- 싱가폴
- docker container
- 도커각티슈케이스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
글 보관함