로그인 없을때 API 엔드포인트 보안 방법에 대한 연구 > 자유게시판

자유게시판

로그인 없을때 API 엔드포인트 보안 방법에 대한 연구 정보

로그인 없을때 API 엔드포인트 보안 방법에 대한 연구

본문

 

로그인이 없는 맵 서비스를 개발중입니다.

자바스크립트로 API 서버를 호출 할 경우 여러가지 공격에 노출될 수 있습니다.

 

어떤 방식으로 보안을 할까 열심히 GPT와 입씨름을 한 결과

다음과 같은 방식이 좋겠다고 생각이 드는데 어떤가요?

(일단 정리겸 기록 용으로 남깁니다. 까먹을것 같아서 ㅎㅎ)

 

[적용 고려]

- JWT를 이용한 토큰 발급 및 검증 (서버에 상태를 저장하지 않기 때문에 서버비 절감)

HTTP Only 쿠키 설정을 통해 XSS공격 방지 및 토큰 노출 방지

- 토큰 만료시간 (1시간 미만)

- 기본적인 WAF On

 

[의미 없을것 같아서 폐기]

- Endpoint를 VPC-Link를 통해 내부에 둠으로써 외부접근 불가 (어차피 퍼블릭 필요함)

- Lambda@Edge를 통한 토큰 검증 및 서비스 호출 (어차피 해야 하는일)

- 커스텀 헤더

 

보안은 다중 구성으로 하는것도 좋은데 속도가 느려질것 같고

일단 심플하게 구성하는것이 좋을것 같습니다.

 

 

추천
1

베스트댓글

댓글 13개

@똥싼너구리 근데 jwt가 없는 엔드 포인트는 사실상 방법이 없...다 생각하는 1인..

 

뭐 호출하는 시간 + 속도 그래봐야..0.000 단위니깐 뭐 크게 신경쓸 ....

 

지금 호출하는 api가 어마어마하게 많아서 헤갈립니다 하하하하하!!

@미니님a 

또 고민이 되는게 서비스 진입시 jwt 토큰을 발행하고 api 호출시 실어서 보내려고 하는데

로그인이 없기 때문에

서비스 진입시 토큰을 발급하는 로직을 누군가 알아내서

토큰을 계속 발급하면서 api를 호출할 수 있지 않을까 생각이 드네요

 

이것에 대한 보안 방법이 있을까도 고민됩니다.

 

제 생각에는 API 만 제공한다면 api 키가 있는지만 확인하면될거고요

 

그게아니라 프론트페이지에서 제공하면

cors 체크랑 http only + jwt 로 충분하지 않을까요.

 

계속 호출하는건 초당 api 제한같은걸 두는 수밖에 없어보이네요

 불특정 다수 서비스이고 클라이언트는

html+CSS+JS 만으로 개발되기 때문에 API Key는 의미가 없을것 같습니다.

 

저도 cors 체크랑 http only + jwt 이정도면 충분하다 생각은 하지만

공격 포인트를 생각하다보니 토큰 생성에서 조금 민감하게 생각이 드네요^^

실제 서비스는 이정도만 해도 충분한데

연구를 하는 입장에서 한번 생각해볼 문제인것 같아서요 ㅎㅎ

@똥싼너구리 

 

1. 외부 호출 제한 걸기

 

2. 로직을 수시로 바꾸기(?)

 

3. 내부 호출도 일정 시간 동안 반복해서 걸 경우 블락

예) 1분 안에 10회 혹은 20회 호출 시 1시간 블락

 

4. 내부에서 발급된 경우 리프레시 만료 전까진 재발급 제한

@미니님a 

3번이 보통 자주 쓰이는 방법이죠^^

AWS 기본 방화벽에 포함이 되어 있더라구요

DDOS 방지용이죠 이건 기본으로 켜고 할 예정입니다.

리프레시 토큰은 없는걸로 설계 했어요^^

로그인 자체가 없기도 하고

리프레시 토큰을 이용해서 또 공격 포인트가 생기는것 같아서요

참 어려운 문제입니다. 회원인증없이 불특정다수에게 서비스를 제공한다는게... 화이팅입니다!!

전체 195,955 |RSS
자유게시판 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT