해당 프로젝트는 back-end가 없기 때문에, 모든 동작이 front-end에서 진행됩니다.
때문에 해킹에 취약합니다. 우리는 오늘 이 문제를 해결할겁니다.
우선 firebase 홈페이지 -> Firestore Database -> 규칙 으로 가줍니다.
코드를 보시면, read, write를 2024년 5월 3일까지 허락한다고 적혀있습니다.
일단 모든 주석을 제거하고
우선 read만 허용하는 rule을 추가할겁니다.
이렇게 수정하면 권한이 있는 누구든 읽기를 허용한다는 겁니다.
작성을 완료했다면 게시해줍니다.
우리의 사이트로 돌아가서 새로고침하면 정상작동 되는것을 확인할 수 있는데, 변화가 없어 모르겠다면 read를 write로 바꿔서 적용하고,
다시 새로고침하면 read를 할 수 없다는 것을 알게됩니다.
이제 write에 대한 권한을 설정할겁니다.
write 권한은 create, update, delete를 모두 포함합니다.
update와 delete는 게시글의 userId와 접속한 uid가 같다는 조건에 실행되어야 합니다.
그렇기에 위와 같이 작성해줍니다.
여기까지 완료했다면 이제 Storage -> 규칙 으로 가줍니다.
이와 같이 작성해 주시면 마찬가지고 read, write는 로그인 된 유저에게 허용하지만
write에서 크기를 2MB로 제한 한다고 적용할 수 있습니다.
이제 API key를 사용할 수 있는 장소를 제한할겁니다.
console.cloud.google.com/apis/credentials 이 주소로 이동해줍니다.
위 사진과 같은 순서로 자신의 프로젝트를 선택해줍니다.
Browser Key를 눌러주시고, Set an application restriction에서 제한될 장소를 선택합니다.
저는 website에서만 가능하게 하기위해 website를 선택하겠습니다.
이후 아래의 add를 클릭하여 자신의 사이트 주소를 적어줍니다. Done 해주고 Save 해줍니다.
위 단계까지 완료해주면 다른 경로로 접속했을때 기능이 블럭됩니다.
여기까지 따라오면 모든 단계가 완료되고 서비스를 할수있는 최소 수준이 완성되었습니다.
'Front-end > twitter_clone' 카테고리의 다른 글
[트위터 클론코딩 챌랜지] Deploy_20 (0) | 2024.04.11 |
---|---|
[트위터 클론코딩 챌랜지] 자신의 게시물만 가져오기_19 (0) | 2024.04.08 |
[트위터 클론코딩 챌랜지] Profile 만들기_18 (2) | 2024.04.08 |
[트위터 클론코딩 챌랜지] Edit 만들기_17 (0) | 2024.04.05 |
[트위터 클론코딩 챌랜지] 트윗 Delete_16 (0) | 2024.04.04 |