inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

로그인 처리하기 - 서블릿 HTTP 세션1

해킹의 가능성에 대해 질문있습니다

310

민혁

작성한 질문수 7

1

세션 과정을 위의 표와 같이 이해했습니다.

영한님께선 세션Id가 털려도 여기에는 중요한 정보가 없다.  

즉 털려도 상관없다라는 식으로 말씀하셨는데,

위 표와 같이 제가 이해한게 맞다면 결국 해커가 세션 키만 안다면 해킹을 할 수 있는게 아닌가?라고 생각이 들었습니다.

맞는 방식인지는 모르겠으나 테스트를 해봤습니다

두 개의 창을 띄워 각 다른 아이디로 로그인 했습니다.

표 처럼 B의 세션키를 A에 적용했을 때 B로 바뀌는 모습을 확인할 수 있었습니다.

근데 이게 될 때도 있고 안 될 때도 있습니다.. 정확한 이유를 모르겠네요

 

물론 해킹을 100% 막을 순 없겠지만 생각보다 쉽게 털리는 것이 아닌지 의문점이 생겼는데, 제가 무엇을 잘못 알고있는걸까요?

 

MVC spring

답변 1

0

김영한

안녕하세요. 민혁님

생각하신 것 처럼 sessionId가 실시간으로 유출 된다면 문제가 발생할 수 있습니다.

다만 sessionId는 고객이 일정시간 사용하지 않거나 또는 로그아웃시에는 서버에서 파기되기 됩니다.

그래서 sessionId를 짧게 가지고 가는 보안 정책들을 시행하는 회사들도 있습니다.

감사합니다.

0

민혁

늦은 시간에 답변 달아주셔서 정말 감사합니다.

세션정보와 타임아웃 설정 강의에서 말씀하신 내용을 적용하는 방식은 이해를 했습니다.

적절한 가정인지 모르겠지만 세션 종료 시점을 30분이라고 했을 때, 해킹범이 sessionId가 파기 되기 전 저의 sessionId를 탈취해 제 아이디로 로그인을 한다면, 해킹범도 마찬가지로 서버에 요청한 기준으로 30분이 유지되어 지속적으로 악의적인 요청을 할 수 있는게 아닌지?라는 생각이 들었습니다.

결론적으로 해킹 측면에서 세션 종료 기준을 정하는게 큰 도움이 되는 것인지에 의문이 생겼습니다.

위 가정이 적절하다면 메모리 측면?에선 확실히 이점이 있는 것은 알겠는데 위와 같은 상황에선 제가 아직 실무 경험이 없어서 그런지 와닿지 않네요..

질문 자체가 이상한거면 죄송합니다 ㅠ

0

김영한

안녕하세요. 민혁님

sessionId가 파기 되기 전에 sessionId를 탈취 당한다면 당연히 문제가 될 수 있습니다.

그런데 30분이 아니라 세션이 100일 동안 살아있다면 해킹을 당할 소지가 훨씬 더 크게 됩니다.

예를 들어서 컴퓨터 어딘가 세션Id가 로그로 남아있게 되면다면, 해커가 그 정보를 99일 뒤에 찾아도 로그인이 될 수 있는 것이지요. 반면에 30분이면 내가 웹 브라우저에 실시간으로 로그인 했을 때 그 30분 안에 세션Id를 도용해야 해킹을 할 수 있게 됩니다.

감사합니다.

0

민혁

예시 덕분에 확실히 이해했습니다! 바쁘실텐데 답변 정말 감사합니다ㅎㅎ

이미지 업로드와 db 트랜잭션 묶는법

0

43

1

Could not resolve org.springframework.boot:spring-boot-starter-validation:2.4.4

0

53

2

MessageSourceTest 코드

0

49

1

인터셉터 에러 설정

0

48

1

resolveArgument()메서드 질문

0

57

1

43강 검증1 에서 실패 로직 관련 질문있습니다.

0

58

2

타임리프 3.X 버전 rendering, serializer 에러 해결 방법

2

133

3

스프링 빈에 등록이 안되는거 같은데 어떻게 하면 좋을까요?ㅠㅠ

0

90

3

pdf 오타 문의

0

57

1

ItemUpdateForm 검증 관련 질문입니다.

0

49

1

22page 링크 주소 변경

0

59

2

특정 데이터와 파일을 함께 저장 시, 테이블 구조 질문

0

53

1

섹션3번 수업에 대한 질문입니다.

0

80

2

@Autowired 보다 더 좋은 방법이 어떤 걸까요?

0

85

2

타입컨버터 가 람다랑 비슷해 보이는데 저의 생각이 맞는지?.

0

66

1

자바스크립트 인라인에서 객체 직렬화 시 오류가 납니다

0

142

3

스프링부트 - 오류페이지2 에서 500.html 에서 쓰인 객체 질문

0

63

1

톰캣 에러 페이지가 안보입니다.

0

104

2

apiEceptionController에서 센드 에러 호출하면 안되는지?

0

81

1

세션 타임아웃시 쿠키 삭제 방법이 없나요?

0

118

2

ApiExceptionController 질문드립니다.

0

64

1

셀렉박스 챕터에서 option value에 ==배송 방식 선택== 이것을 넣은 이유가 궁금함, 이렇게 구상해도 되는지?

0

66

1

MemberRepository 필드의 fianl 선언 유무

0

85

2

혹시 index.html 에서는 fragment 사용이 안되는건가요

0

58

1