• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

스프링 spring get/post 보안 관련 문의 드립니다

23.10.25 17:25 작성 23.10.25 21:54 수정 조회수 221

0

스프링 spring 보안 관련 문의 드립니다

 

토비님 안녕하세요 ~

여전히 공공기관 프로젝트에 참여 중 인데요

스프링 보안 관련 해서 문의 드립니다

현재 기 구축되어 있는 프로젝트 소스에서 고도화 및 신규 프로그램 개발 중입니다

그러던 중 공공기관 관리자 담당자가

보안 관련 지적을 하셨습니다

 

-.공무원 담당자 지적사항 내용

 

https://www.url.com?paramA=파라미터a&paramB=파라미터b

 

=> 현재 일반 조회는 스프링 겟 매핑 방식 으로 하고 있습니다

사이트를 사용하는 일반 유저가

브라우저 url 주소창에 파라미터만 수정해가면서 조회 하면

조회 결과가 달라져 나오는데 이거 보안상 문제 있는거 아니냐고 따져 지적을 합니다

 

기 구축되어 있는 소스에는 request 할때

따로 인코딩/디코딩이 되어 있지 않는데

토비님이 경험해오신 스프링 get/post 보안관련 지적 사항이 나오지 않을려면

저희 프로젝트에서 어떻게 전체 소스(js, java ) 에 어떤 보안 관련 기능을 추가 할 수 있을까요?

 

참고로 구글도 검색어에 '토비' 라고 치고

개발자 도구 열어서 payload 보면 한글 그대로 넘어가던데

이게 공무원 담당자가 보안 관련 지적 하는게 맞는 건지도

저는 모르겠습니다

한가하실 때 시간 나시면 조언 부탁 드립니다

감사합니다 수고하세요~

 

 

김동희 드림

 

#토비

#토비의스프링

#spring

#스프링

#보안

#get

#post

#parameter

#파라미터

#문제

답변 1

답변을 작성해보세요.

1

파라미터를 쓴다고 그것만으로 보안에 문제가 있다고 단정할 수 없습니다.
중요한 건 파라미터에 해당하는 정보를 조회하는 권한이 현재 유저에게 있는가(비로그인 또는 로그인 사용자 모두)입니다.
파라미터를 암호화 해서 조작을 못하게 하면 쪼금 낫겠지만, 어짜피 암호화가 브라우저 자바스크립트에서 일어나면 그 코드를 가지고 얼마든지 다른 파라미터를 만들어낼 수 있습니다.

중요한 건 조회권한에 대한 체크가 필요한지 여부이지 파라미터를 URL에 노출하는 것 자체가 아닙니다. 구글을 비롯한 수많은 서비스가 url에 조건이 다 담겨져있다고 해주세요. 다만 사용자가 만든 건 아니고 고정된 링크로 들어간 경우, 위에서 얘기한대로 서버에서 조회권한을 체크할 필요가 있는지, 있다면 하고 있는지가 핵심입니다.

김동희님의 프로필

김동희

질문자

2023.10.25

토비님 답변 감사드립니다!!

참여 중인 프로젝트가 네이버 같은

정부 포탈사이트 성격인데

로그인후 마이페지에 본인정보가 아닌

파라미터를 바꿔가면서 조회하면

조회가 되게 잘못 되어 있어서 ㅠㅠ

토비님이 조언 해 주신 대로 본인과 연관된 권한이있는지

여부에 따라 제한을 거는 로직은 적용 하도록 하겠습니다

 

추가질문이 있습니다

1.토비님은 실무 수많은 프로젝트를 하셨을텐데요

조회성 request ajax,axios,fetch 등을사용하시면서

get/post매핑을 혼용해서 사용하시나요?

아니면, 모든 request 를 post 로 만 작업하시나요?

 

2.토비님이 금융 은행권이나 프로젝트를 만약 하셨다면

브라우저 url 에 request 시 파라미터표시를 막게 post 로만 작업하나요?

( 개발자입장에서 브라우저 개발자 도구를 이용해서

넘어가는 파라미터 payload 를 볼 수 없다면,

로컬 클라이언트 환경에서 테스트 디버깅이 너무 어려울거같습니다

자바 컨트롤러에서 다 찍어봐야 하니..)

 

3.실제 프로젝트를 하시면서

request 시 파라미터를 암호화 해달라는

프로젝트 요건을 경험하신적이 있으신지요?

 

매번 너무 친절하고 자세히 설명해 주셔서 고맙습니다

푹 쉬세요^^

 

  1. 프로젝트마다 다릅니다.

  2. 프로젝트마다 다릅니다.

  3. URL에 넣는 거 말고 body로 오는 경우는 보안이 매우 중요한 금융 서비스 개발 일부에는 있습니다.

김동희님의 프로필

김동희

질문자

2023.10.26

토비님 답변 감사합니다 좋은하루 보내세요!!