Home
home
🏡 홈
home

[API 보안] API링크 첨부시 주의점

분류
실무지식
태그
Security
작성자
작성일
2024/11/15 00:23
업무전달을 위해 API링크를 메신저,메모앱 등에 첨부해야 되는 케이스가 있다. 개인 프로젝트처럼 문제가 되지 않는 API라면 상관없겠지만, 중요한 실무프로젝트에서 사용되는 API는 보안상 취약할 수 있다. 어떤 케이스가 있는지 간단한 예시로 알아보고, 주의점을 정리해보려고 한다.

실무에서 문제가 발생할 수 있는 예시

기획자A씨는 특정채널의 유입한 사용자들의 로그를 남기기위해, 외주업체에 의뢰하여 로그를 남기는 API를 전달받았다.
그리고, API를 내부서비스에 연동하기위해, 백앤드 개발자B에게 샘플링크를 슬렉 메신저로 전달하였다.
https://api.example.com/log/{채널id}/{이름}
Plain Text
복사
다음날 외주업체에서 API기록에 변수형태의 로그기록이 남는다고, 오류를 확인해달라는 연락이 왔다.
백앤드 개발자B는 테스트로 API를 호출 하지도 않았고, 왜 기록이 남는지 원인을 알 수 없었다.
로그에 호출한 IP를 확인해보았지만, 특정 클라우드 서비스의 IP로 확인되었다.

원인 분석

위의 예시에서 조금 극단적인 상황을 연출했지만, 충분히 실무에서도 발생할 수 있는 문제이다.
본론으로 위에서 발생한 문제의 원인을 간단하게 살펴보자
샘플링크가 전달되는 과정에서 메신저를 사용했는데, 자동으로 호출되어 문제가 발생
Plain Text
복사
그렇다면, 위와 같은 원인을 방지하기 위해 해야될 작업은 무엇인가 ?

문제 해결

API를 문서화하여 제공
샘플링크를 직접 전달하는것보다는 문서화된 링크를 보내는게 적합하다.
만약, 문서화되지 않았다면 전달하는 과정에서라도 문서화가 필요할 수 있다.
API 제작시 보안강화
전달받은 파라미터를 그대로 실행하지 않고, 이스케이프 처리나 유효하지 않은 데이터형식은 걸러질 수 있도록 제작해야 된다.
테스트 서버 및 API 제공
실제 서비스되고 있는 API보다는, 테스트용으로 실행할 수 있도록 환경을 조성한후에 전달하는게 안정적이다.

마무리

당연한 내용같지만 실무에서는 다양한 코드 및 개발자들을 접할 수 있으므로, 충분히 발생할 수 있는 문제입니다. 만약 실무에서 이와같은 상황을 겪는다면 내용이 도움이 될 수 있을거라고 생각합니다.