공부/클론코딩
Day 3 - 클론 코딩 시작
삶은고구마
2024. 9. 7. 21:24
파이어베이스 비밀키 숨기기
1.파이어베이스 비밀키 숨기기
day 2에서 작성한 아래의 코드 firebaseConfig에서 보안상의 문제로 키값을 감춰야함.
import firebase from "firebase/app";
const firebaseConfig = {
..생략..
};
export default firebase.initializeApp(firebaseConfig);
How?
.env 파일 생성
.env 파일에 비밀키 변수 등록
비밀키가 필요할 때 참조하도록 하기
.env파일 업로드만 하지 않는다면 노출을 방지할 수 있음
1).env파일로 환경 변수 설정하기
.env파일을 package.json 루트에 생성하기 (반드시 점 포함)
2).env파일 숨기기
.env파일은 깃허브에 업로드 되지 않도록 설정해야함
.gitignore 파일을 이용하면 된다. .env 추가하면 된다.
# misc
.DS_Store
#.env추가
.env
.env.local
.env.development.local
.env.test.local
.env.production.local
3)friebaseConfig.js에 환경변수 적용하기
firebase.js에 쌩으로 적혀있던 키값들을 .env 파일에 적어둔 변수로 변경한다.
process.env는 .env 파일을 읽어 해당 변수를 사용한다는 의미이므로 꼭 붙여야함.
*완벽한 보안은 아니지만 github 업로드를 방지하는것만으로도 위협을 줄일 수있음.
+오늘 오류가 나서 확인해보니 appId에서 변수값 앞에 process.env.를 붙이지 않아 에러발생.
참조할 수 없는 변수라 에러가 났다.
import firebase from "firebase/compat/app";
const firebaseConfig = {
apiKey: process.env.REACT_APP_API_KEY,
authDomain: process.env.REACT_APP_AUTH_DOMAIN,
projectId: process.env.REACT_APP_PROJECT_ID,
storageBucket: process.env.REACT_APP_STORAGE_BUCKET,
messagingSenderId: process.env.REACT_APP_MESSAGING_SENDER_ID,
appId: process.env.REACT_APP_APP_ID
};
export default firebase.initializeApp(firebaseConfig);