스프링 spring get/post 보안 관련 문의 드립니다
599
작성한 질문수 33
스프링 spring 보안 관련 문의 드립니다
토비님 안녕하세요 ~
여전히 공공기관 프로젝트에 참여 중 인데요
스프링 보안 관련 해서 문의 드립니다
현재 기 구축되어 있는 프로젝트 소스에서 고도화 및 신규 프로그램 개발 중입니다
그러던 중 공공기관 관리자 담당자가
보안 관련 지적을 하셨습니다
-.공무원 담당자 지적사항 내용
https://www.url.com?paramA=파라미터a¶mB=파라미터b
=> 현재 일반 조회는 스프링 겟 매핑 방식 으로 하고 있습니다
사이트를 사용하는 일반 유저가
브라우저 url 주소창에 파라미터만 수정해가면서 조회 하면
조회 결과가 달라져 나오는데 이거 보안상 문제 있는거 아니냐고 따져 지적을 합니다
기 구축되어 있는 소스에는 request 할때
따로 인코딩/디코딩이 되어 있지 않는데
토비님이 경험해오신 스프링 get/post 보안관련 지적 사항이 나오지 않을려면
저희 프로젝트에서 어떻게 전체 소스(js, java ) 에 어떤 보안 관련 기능을 추가 할 수 있을까요?
참고로 구글도 검색어에 '토비' 라고 치고
개발자 도구 열어서 payload 보면 한글 그대로 넘어가던데
이게 공무원 담당자가 보안 관련 지적 하는게 맞는 건지도
저는 모르겠습니다
한가하실 때 시간 나시면 조언 부탁 드립니다
감사합니다 수고하세요~
김동희 드림
#토비
#토비의스프링
#spring
#스프링
#보안
#get
#post
#parameter
#파라미터
#문제
답변 1
1
파라미터를 쓴다고 그것만으로 보안에 문제가 있다고 단정할 수 없습니다.
중요한 건 파라미터에 해당하는 정보를 조회하는 권한이 현재 유저에게 있는가(비로그인 또는 로그인 사용자 모두)입니다.
파라미터를 암호화 해서 조작을 못하게 하면 쪼금 낫겠지만, 어짜피 암호화가 브라우저 자바스크립트에서 일어나면 그 코드를 가지고 얼마든지 다른 파라미터를 만들어낼 수 있습니다.
중요한 건 조회권한에 대한 체크가 필요한지 여부이지 파라미터를 URL에 노출하는 것 자체가 아닙니다. 구글을 비롯한 수많은 서비스가 url에 조건이 다 담겨져있다고 해주세요. 다만 사용자가 만든 건 아니고 고정된 링크로 들어간 경우, 위에서 얘기한대로 서버에서 조회권한을 체크할 필요가 있는지, 있다면 하고 있는지가 핵심입니다.
0
토비님 답변 감사드립니다!!
참여 중인 프로젝트가 네이버 같은
정부 포탈사이트 성격인데
로그인후 마이페지에 본인정보가 아닌
파라미터를 바꿔가면서 조회하면
조회가 되게 잘못 되어 있어서 ㅠㅠ
토비님이 조언 해 주신 대로 본인과 연관된 권한이있는지
여부에 따라 제한을 거는 로직은 적용 하도록 하겠습니다
추가질문이 있습니다
1.토비님은 실무 수많은 프로젝트를 하셨을텐데요
조회성 request ajax,axios,fetch 등을사용하시면서
get/post매핑을 혼용해서 사용하시나요?
아니면, 모든 request 를 post 로 만 작업하시나요?
2.토비님이 금융 은행권이나 프로젝트를 만약 하셨다면
브라우저 url 에 request 시 파라미터표시를 막게 post 로만 작업하나요?
( 개발자입장에서 브라우저 개발자 도구를 이용해서
넘어가는 파라미터 payload 를 볼 수 없다면,
로컬 클라이언트 환경에서 테스트 디버깅이 너무 어려울거같습니다
자바 컨트롤러에서 다 찍어봐야 하니..)
3.실제 프로젝트를 하시면서
request 시 파라미터를 암호화 해달라는
프로젝트 요건을 경험하신적이 있으신지요?
매번 너무 친절하고 자세히 설명해 주셔서 고맙습니다
푹 쉬세요^^
11강에서 cmd에서 spring shell에 $ init 하면 Fail 메세지
0
76
2
TestRestTemplate 을 통해 테스트 실행시 웹 요청 정보가 콘솔에 표시되지 않습니다.
0
85
1
섹션7. 자동구성 정보파일분리 강의 질문(@MyAutoConfiguration 붙힌 이유)
0
202
2
WebApplicationContext를 DispatcherServlet에 this로 넘기는 것
0
279
2
인프라 빈 구성 정보의 분리에서 EnableMyAutoConfiguration 질문드립니다.
0
211
2
질문드립니다.
0
233
2
spring boot 3.3.7로 학습중입니다.
0
371
2
Serverproperties 객체 생성 후 @Impor 어노테이션 사용 이유 용도
0
162
2
spring start io 에서 이제더이상 2.x버전은 지원하지 않는 것 같습니다.
1
298
2
Springboot 3.2 이상에서 파라미터 추론관련
0
918
4
binding error
0
222
3
Arrays.copyOf 메서드의 타입 세이프
1
156
2
MyOnClassCondition에 있는 matches method의 Invoke 횟수
1
233
3
인용구의 출처가 궁금합니다.
0
259
1
프로퍼티 빈의 후처리기 도입 AnnotationUtils의 사용
0
236
2
SimpleCacheConfiguration과 빈 등록
0
169
2
MyAutoConfigImportSelector 에서 생성자로 ClassLoader를 주입받을 수 있는 점
0
244
1
IntelliJ project jenerator spring initailizr
0
150
1
강의 자료 레퍼지토리에 업로드
0
216
1
강의자료
0
388
1
Hikari 라이브러리가 없으면 오류가 나는거 아닌가요
0
314
2
Tomcat 포트 프로퍼티 미설정시 랜덤 포트 설정 문의
0
476
5
@Import 로 Bean을 등록해야하는 기준이 뭔지 궁금합니다.
0
343
2
application.properties파일내 프로퍼티 이름
0
214
1





