🧩git cherry-pick 다른 브랜치에서 특정 커밋만을 현재 브랜치로 가져오는 Git 명령어이다 커밋을 다른브랜치에 잘못 커밋하거나,필요없는 커밋이 생기거나,다른사람의 커밋 중 일부를 가져와야 하는 경우 사용한다 하나 적용시 git cherry-pick 여러개 적용시에는 나란이 열거해 주면된다 git cherry-pick ..을 이용해 hash1 hash3사이의 모든커밋을 cherry-pick할수 있다 =>hash1처음 커밋이고 hash3이후커밋이면 hash1 cherry-pick할수 없다 이를 해결하기 위해서는 범위를 hash1^..hash3와 같이 지정해주어야 한다 git cherry-pick 만약 c1원의 버전만 c2와 합치고 싶을때 c1의 이전 버전인 b1과 비교하여 변화된 내용만 사용하고 ..
⭐️네트워크 📌CSRF나 XSS 공격을 막는 방법을 설명해주세요 CSRF 공격을 막기 위해서는 서버에서는 CSRF Token을 생성하여 세션에 저장하고 모든 요청에 대해 CSRF Token을 사용합니다 프론트엔드에서 요청 시 해당 Token을 함께 전송하여 인증합니다 => CSRF 토큰이 없으면 서버에서 해당 요청을 거부 SameSite 속성을 쿠키에 설정하여 도메인이 다른 사이트에서는 쿠키를 사용할 수 없도록 제한합니다 Referer 헤더를 검증하여 요청이 원래 페이지에서 보내진 것인지를 확인합니다 XSS 공격을 막기 위해서는 XSS 필터링을 위해 DOMPurify, Sanitize 등과 같은 라이브러리를 사용하는 것이 좋습니다 =>입력 값들을 유효성 검증하고, 특수문자들을 제외하는 정규식을 통해서 제..
프로젝트 유지보수 해야지 하다가 한달만에 .... 여러 수많은 에러를 겪었는데 적지 않아 기억이 나지 않는다 📌기본세팅 const api = axios.create({ baseURL: process.env.REACT_APP_API_URL, headers: { "content-type": "application/json", }, withCredentials: true, }); 바로 에러 프로젝트에서 content-type을 두가지 사용해야 되서 두가지 적용을 해야하기 때문에 따로 빼야했다 ㅎㅎ const instance = axios.create({ baseURL: process.env.REACT_APP_API_URL, withCredentials: true, }); 📌axios.interceptors.r..
내코드와 원격저장소가 다른데 git pull Already up to date가 뜨는 경우 =>원격 저장소에 최신 코드가 아직 반영되지 않은 것 이런일이 흔히? 일어나서 정보가 많았는데 git feth all git reset --hard origin/main 입력하라고 했고 생각보다 손이 먼저 나갔는데 뭔가 이상했다 로컬에서 했던 작업이 사라져버렸다 바보다 reset 이라는 단어가 있는데.. ㅎ 📌git reset --hard origin/main 명령어는 로컬 브랜치를 origin/main 브랜치로 강제로 이동시키고, 작업 트리의 변경 사항을 모두 지우기 때문에 이전 작업 내역이 모두 삭제된다고 한다 만약에 로컬 작업을 유지하면서 원격 저장소의 최신 변경 사항을 반영하고 싶다면? git fetch..