작성
·
72
0
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
PRG에 대한 강의 내용 도중에 궁금증이 생겼습니다.
PRG 관련해서 도식화한 것을 보면, 3. 응답 내용에서 주문 번호를 응답해주는 것을 확인할 수 있습니다
그 이후에 주문 완료 페이지가 리다이렉션 되는데 이때 주문 번호에 맞는 페이지가 뜨는거라고 이해할 수 있습니다
여기서 궁금한 점이, 사실 여러 홈페이지들을 보면서 이런식으로 주소창에 주문 번호와 같은 것들을 임의로 수정해서 다른 사람의 특정 페이지를 찾아본 경험이 몇 번 있는데, 이를 뭐라고 부르며, 어떻게 방지할 수 있을까요?
단순히 주문번호를 예측할 수 없게 랜덤하게 생성한다기보다는 로그인을 통해서 특정 권한을 부여한다거나 이렇게 해결해야할까요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
유동훈님께서 문의하신 주소창 인젝션과 관련된 질문에 대해 답변 드립니다.
유동훈님이 설명하신 상황은 URL을 통해 민감한 정보를 가져올 수 있는 보안 취약점을 말하며, 이를 종종 “인젝션”의 일종으로 볼 수 있습니다. 특히 예측 가능한 URL이나 ID를 통해 다른 사용자의 개인 정보를 접근할 수 있다면 이는 “불안전한 직접 객체 참조(IDOR: Insecure Direct Object Reference)“라고 불릴 수 있는 문제입니다.
이를 방지하기 위해서는 몇 가지 방법이 있습니다:
인증 및 권한 확인: 각 요청에 대해 사용자의 권한을 확인하여 자신의 정보에만 접근할 수 있도록 제한하는 것이 중요합니다. 로그인을 통해 사용자의 세션을 확인하고, 해당 사용자의 권한 범위 내에서만 데이터를 허용해야 합니다.
비예측 가능한 식별자 사용: 주문 번호나 다른 식별자를 예측할 수 없도록 무작위로 생성합니다. 예를 들어, UUID(Universally Unique Identifier)를 사용하여 각 자원의 접근 키를 만드는 방법도 있습니다.
정기적인 보안 점검: 어플리케이션의 취약점을 지속적으로 테스트하고 발견되는 보안 문제를 수정하여 보안을 강화해야 합니다.
보다 안전한 웹 애플리케이션 설계를 위해 이러한 방법들을 조합하여 사용하는 것을 추천합니다.
추가적인 학습을 위해 아래 링크의 자료도 참고하실 수 있습니다:
- OWASP의 불안전한 직접 객체 참조 설명
- PRG 패턴에 대한 설명
도움이 되시길 바랍니다! 더욱 궁금한 점이 있으시면 언제든지 질문해 주세요.