트러블슈팅과 고민

추가적인 보안 관련 고민 (2025년 4월 26일)

정재익 2025. 8. 7. 16:40

 

2025년 4월 26일의 고민 노션에서 옮겨오고 있습니다.

 

고민

1차 테스트 서버에서 모의 해킹결과 GET요청에 민감 데이터를 넣어서 프론트에서 민감데이터 처리를 하는 바람에 서버로 직접 요청해서 응답을 탈취하는 경우가 있었음.

 

HTTPONLY쿠키 SAMESITE STRICT SECURE 설정 다 했기 때문에 CSRF나 쿠키탈취 가능성은 적음 그리고 서버 시큐리티에서 권한 검사 함

 

다만 서버에 직접 요청이 가능한 점 프론트를 통해서만 서버에 접근 가능하는 것도 생각해보았지만 ELB에서는 루트를 분기하는 기능만 있고 서버에 접근해도 신원검사와 보안을 해놓았기 때문에 신원을 검사하지 않는 GET요청의 민감 데이터를 내려주지 않으면 될 듯 함


해결

 

민감데이터 처리는 프론트에서 하지말고 서버에서 해야함 그리고 서버에서 권한별로 다른 데이터를 응답해야 함. 같은 데이터를 응답하고 프론트에서 권한을 판단하는 절차로 하면 서버로 직접요청에 모든 데이터가 전달될 수 있음.

 

서버 EC2는 프라이빗 서브넷에 있지만 로드밸런서가 연결되어있어 외부에서 요청이 가능함. 로드밸런서를 제거하고 프론트에서 내부 ip로 요청을 보내면 mixed-content에 막힘 서버를 https로 만들어야 함. 프라이빗 서브넷에 있는 서버에 https를 적용하는 기능은 AWS에 있지만 한달 5만원으로 매우 비싸기 때문에 서버 내부에 nginx를 설치하는 방법이 있음

 

또한 추가적인 보안처리로는 XSS 공격 스크립트 입력 값을 프론트와 백엔드 서버 둘다 필터링해야 함. 그리고 모든 입력 값에 대해 Sanitizer로 검증 및 정제를 수행해야 함