입사 하자마자 진행했던 프로젝트인 paperless 회진 앱의 보안 점검 결과로 여러 문제점을 지적 당했다.크게 앱 단계의 문제와 서버 단계의 문제로 나눌 수 있었는데, 서버쪽 문제는세션 미적용SQL Injection문제가 있었다.이중 세션은 사실 JS의 Map변수를
여러 세션 스토어에 저장될 세션 객체는 공통으로 사용하도록 구상하고 개발했다.기본적으로 Map변수에 정보들을 key-value형태로 담고 꺼내도록 구상했다.interface로 추상-구현 관계를 사용하고 싶었지만 만들어진 프레임워크 자체가 TS를 지원하지 않아 어쩔수 없
Redis로 세션을 저장하는 기능을 구현했지만, 흐름상 쿠키에 세션 key를 담아줄 경우 프록시서 버에서 쿠키를 탈취해 해당 key로 요청을 날리는건 마찬가지라는 생각을 했다.요즘 JWT 같은 방법으로 인증관리를 구현한다고 알고있지만 아직 내가 잘 알지 못하고, 회사
지난번 개발한 세션의 구조적인 변경을 진행했다.이유는 현재 사내 프레임워크는 config.js라는 object에 필요한 정보들(DB host, port 등 과 같은 정보들)을 필드로 가지게 하고, 필요한 곳에서 모듈로 가져와 참조하는 방식을 사용했다.그 중 Redis
지난 포스팅까지 세션 기능 개발을 완성했다.요청이 왔을때, 서비스 로직을 수행하기 전 세션을 체크해서 권한이 있는 이용자의 요청인지 체크를 해주면 된다.일전에 개발한 기존 세션기능은 모든 핸들러 함수 시작부분에 세션 Map을 뒤져 세션이 존재하는지 체크하는 로직을 일일
이전까지 세션과 인터셉터를 모두 개발 완료했다.이제 매 요청 전 세션만 체크해주면 된다.일단 해당 기능 적용 전 이전 글에서 Request 객체에 세션과 관련된 함수를 추가해주는 기능을 인터셉터로 변경해줬다.이렇게 매 요청마다 getSession(), removeSes