티스토리 뷰

 

application.yml에 민감 정보가 들어가는 경우 실수로 git에 올라가는 경우 해킹을 당할 수 있습니다.

 

아래와 같이 db접속 정보가 모두 노출이 되어 있습니다.

 

application.yml

spring:
  # 배포 시에 환경변수에 DB 정보를 넣어줘서 서버 DB 사용
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/feedback
    username: root
    password: 1234

  jpa:
    show-sql: true
    database-platform: org.hibernate.dialect.MySQL8Dialect
    database: mysql
    hibernate:
      ddl-auto: update
    # JDBC TimeZone Setting
    properties:
      hibernate:
        jdbc:
          time_zone: Asia/Seoul

  # Swagger 3.0.0 적용
  mvc:
    pathmatch:
      matching-strategy: ant_path_matcher

# Jwt Secret Key
jwt:
  token:
    secret: secret123123

# 한글 깨지는 현상 방지
server:
  port: 8080
  servlet:
    encoding:
      force-response: true

application-dev.yml, application-qa.yml, application-prd.yml 이런식으로 분리해서 쓰고 application-prd.yml의 경우는 gitignore에 넣어서 git에 안올라가게 쓰곤 합니다만 손이 좀더 가는 방법입니다.

 

Environment Variable 쓰기

저는 대신 Environment Variable을 씁니다. 이 방법은 k8s의 configmap을 이용해 Environment Variable을 넘길때 썼던 방법을 Intelli J에 적용한 것입니다.

 

localhost의 접속정보라면 크게 상관은 없지만 실제 db접속정보가 실수로라도 들어가서 git에 올라가면 바로 해킹 당합니다.

 

Spring은 Environment Variable의 값을 읽어서 설정값을 사용하기 때문에 application.yml에 있는 값을 Environment Variable로 대체 할 수 있습니다.

 

 

Intellij에서 실행할 때 Edit Configurations...을 눌러서 Environment Variable을 입력할 수 있습니다.

형식은 아래와 같습니다.

 

SPRING_DATASOURCE_URL=jdbc:mysql://<db_host>:3306/<db_name>;SPRING_DATASOURCE_PASSWORD=<db_password>

 

application.yml의 spring.datasource.url을 바꾸고 싶다면 SPRING_DATASOURCE_URL 이렇게 모두 대문자로 바꾸고 .대신 _로 바꿔주면 됩니다.

 

application.yml

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/feedback
    username: root
    password: 1234
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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
글 보관함