세션이 jwt보다 보안상 더 뛰어난 이유가


1. 세션은 client 정보를 서버에서 보관하고, 클라이언트한테는 세션아이디만 보여주는데 비해, jwt는 유저 정보 담겨있기 때문에 탈취당하면 유저정보 노출의 위험성이 있다

2. 세션은 해킹됬다 감지되면 revoke해서 해킹된 세션 무효화 바로 할 수 있는데 jwt는 revoke 못한다.

3. 세션은 client side에서 보관시 HttpOnly cookie로 보관하기 떄문에 javascript로 접근 불가능해서 XSS 공격을 방어할 수 있다. 근데 jwt는 localStorage에 보관하기 때문에 XSS공격에 취약하다.


라는데,


1의 경우에 jwt의 payload에 유저 이름이랑 expire_at 만 적으면 털려도 상관없잖아? 유저 이름 노출된걸로 뭐 어쩔껀데?

2는 해커가 유저 JSESSION 쿠키 훔쳐서 http request보낸걸 감지할 수 있어야 세션 무효화 할 수 있는게 유효한거 아님? 유저 기기 mac 주소 등록시켜놓고 매번 요청 비교하는게 아닌이상 유저가 JSESSION 쿠키 보내는지 해커가 JSESSION 쿠키 보내는지 어떻게 아냐? http는 stateless하대매. session이 revoke할 수 있다 해도 사실상 별 의미없는거 아냐?

3. jwt도 HttpOnly Cookie에 보관시키면 되지 프론트 개발자 갈궈서.



곰곰히 생각해보니 session이나 jwt나 해커한테 탈취당하면 털리는건 매한가지인거 같은데,

여태껏 세션이 보안에 더 좋니 가스라이팅 당한거임?