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

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!

자유게시판

로그인 없을때 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 방지용이죠 이건 기본으로 켜고 할 예정입니다.

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

로그인 자체가 없기도 하고

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

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

전체 431 |RSS
자유게시판 내용 검색

회원로그인

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