김상운
127
2021-09-23 12:13:02
4
423

rest api 개발 시 pk 노출


안녕하세요! 스프링 백엔드를 공부중인 대학생입니다. 

혹시, 사용자 조회 등 조회 api를 사용할 때 pk를 통해 조회하는데, 기본키를 노출하면 안되나요?

하지만 구글링을 통하여 조회 api 의 경우 모두 기본키를 활용하는 것 같아서 질문드립니다.

0
  • 답변 4

  • kiel
    65
    2021-09-23 12:22:20

    대부분의 API가  /user/{userId} 형식으로 되어있을텐데요.

    기본키를 노출하면 안된다는 생각은 왜 하시게 되었나요?


    키가 노출되면 안되는 경우도 있기는 합니다.
    예를 들어 /user/{주민번호} 로 되어있다면 심각한 문제가 될 수 있겠죠.
    키를 통해서 뭔가 공격이 일어날 수 있다면 노출을 하지 않고, 임의로 생성된 다른 유니크 값을 사용하는 방법도 있습니다. UUID를 많이 쓰는 이유 중 하나죠.
    일반적으로는 auto generated 된 PK 를 사용할 경우, 키 자체로는 별 다른 의미가 없으니 노출되어도 큰 문제는 없습니다.


  • 초무쿤
    6k
    2021-09-23 12:26:06

    Id 노출 안하면 어떻게 개발을...

  • 오후
    3k
    2021-09-23 13:03:18

    노출되어도 상관없는 인증절차가들어가야죠.

    말그대로 /user/{userPK} 로 본인 및 다른사람정보를 조회할수가있다면


    userpk 와 인증값(토큰)이 동일하다면 본인 = 모든 정보 반환

    토큰과 다른 userpk 를 조회한다면 서비스성격상 노출가능한 정보만 반환 등 처리를하는거죠

  • 김상운
    127
    2021-09-23 17:59:43

    모든 답변 감사합니다!ㅎㅎ

    제가 생각했던 것은 id 노출을 pk가 아닌 다른 방식으로 노출해야하는줄 알았습니다! 

    궁금증이 잘 해결되었습니다. 감사합니다.

  • 로그인을 하시면 답변을 등록할 수 있습니다.