목록전체 글 (191)
JAN's History
Session은 동일 도메인에서만 가능하다만약 동일한 도메인에서의 요청이 아니라면, 쿠키가 날라가지 않는다(서버에서 쿠키가 거부하기 때문)그렇다면 javascript에서 Ajax로 헤더에 쿠키를 강제로 담아 보낼 수 있는데, 서버에서는 HTTP Only 설정을 통해 HTTP 요청이 아닌 javascript 요청이 들어오면 거부되는 설정을 한다.HTTP only = false로 풀어주면, 외부에서 javascript로 강제로 쿠키에 세션 ID를 담아 보내는 등의 악질적인 장난을 많이 치기 때문에 true로 설정하는 편이 좋다.Authorization서버로 요청을 보낼 때, 요청 헤더에 Authorizaion : 을 담아서 보냅니다.type에는 여러가지가 있지만 Basic, Bearer를 알아보겠습니다.B..
Maven com.auth0 java-jwt 3.16.0application.ymlserver: port: 8080 servlet: context-path: / encoding: charset: UTF-8 enabled: true force: truespring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/{your_database}?serverTimezone=Asia/Seoul username: {your_username} password: {your_password} jpa: hibernate: ..
JWT란?RFC 7519 웹 표준으로 지정 되어 있고,Json 을 사용해서 토큰 자체에 정보들을 저장 하고 있는 Web Token이라고 정의 된다.기본적으로 HTTP protocl은 Stateless 상태인데, 이 특징을 유지하면서도 로그인 상태 유지를 가능하게 해주는 것이 JWT토큰이다!RFC 7519https://www.rfc-editor.org/rfc/rfc7519 RFC 7519: JSON Web Token (JWT) www.rfc-editor.orgJWT 공식 사이트https://jwt.io/ JWT.IOJSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two ..
에러nio-8000-exec-4] o.a.c.c.C.[Tomcat].[localhost] : Exception Processing ErrorPage[errorCode=0, location=/error]java.lang.NullPointerException: null상황JWT에서 필터 구현 테스트 중 갑자기 회원가입, 로그인 기능에서 계속 NullpointerException이 발생함..근데 알아보니 Filter에서 문제가 발생했던 것이었다해결책- 원래 기존 MyFilter3public class MyFilter3 implements Filter { @Override public void doFilter(ServletRequest servletRequest, ServletResponse serv..
저번 시간에는 CIA에 대해 알아보았는데1. 열쇠 전달 문제 (암호화한 문서에 대한 키를 보내는데 중간에 가로챌 수 있는 문제)2. 누가 문서를 보냈는가? (중간에 누군가 가로채 다른 사람이 문서인지 확인할 수 없던 문제) 에 대한 문제가 해결되지 않았습니다.RSA(암호화)1. 열쇠 전달 문제Public Key : 공개 키자신의 블로그나 오픈된 공간에 공개해도 문제가 되지 않음Private Key : 개인 키오직 자신만 알고 있어야 함.=> 유저는 각자 각 1개씩, 총 2개 키를 가지고 있다.A가 비밀번호를 보낼 때, B의 공개키로 암호화를 한 뒤 보냈다.하지만, 중간에 C가 중간에 가로챘다. 하지만 C는 내용을 볼 수가 없다. 왜? B의 공개키는 반드시 B의 개인키로만 열 수 있으므로➡️ 열쇠 전달 문..
CIA(Confidentiality Integrity Availability)저번에 TCP에 대해 알아봤으니 오늘은 보안에 대해 알아보도록 하겠습니다!Confidentiality(기밀성) : 개인정보, 민감한 정보 등을 인가된 사용자에게만 허가Integrity(무결성) : 내용의 변경이나, 훼손없이 정확하게 보존Availability(가용성) : 항상 정상적으로 신뢰성 있는 서비스를 할 수 있는 상태 예를 들어 A/B/C가 있다고 해보면, A가 B에게 문서를 전달하는데, 중간에 C가 문서를 탈취하면 기밀성이 깨지게 됩니다.A나라가 B나라에게 문서를 전달하는데, 이번에는 C나라가 위조된 문서를 전달시키면 무결성이 깨집니다.B나라는 A나라가 보내준 문서를 잘 받았습니다. (사실 C나라가 위조시킨 문서임) 이..
웹에는 통신방식으로 OSI 7계층을 따르는데요.이 계층 방식을 이해해야 TCP방식을 알게되고, TCP방식을 이해해야 보안이 무엇인지를 알게되고,보안이 무엇인지를 알게되야 왜 Json Web Token이 나온지에 대해 이해할 수 있습니다!하나를 알기위해 열을 알아야하지만.. JWT가 왜 나왔는지 배경지식을 이렇게 알아야 비로소 내 지식으로 만들 수 있어요:) 통신 OSI 7계층웹에는 통신방식으로 OSI 7계층을 따르는데요.통신을 할 때에는 응용계층부터 물리계층까지 쭉 내려와서 전송이 되고, 상대방도 전송받을 때 물리계층으로 응용계층까지 쭉 올라가서 수신을 하게 됩니다. 심지어 메일을 보낼때에도 모두 이런 방식을 따르게 돼요.통신 OSI 7계층 역할그리고 각 계층마다 역할이 있는데요.7. 응용계층 : Mes..
쿠키, 세션 로직1. web에서 최초 요청을 합니다.2. 서버에서 쿠키와 세션 ID (ABCD) 를 생성하고 세션 저장소에 기록해둡니다.3. html header에 쿠키와 세션 ID(ABCD)를 같이 return합니다.4. web에서는 응답받은 쿠키 세션 ID (ABCD) 를 가지고 있습니다.5. 그리고 두번째 요청할 때 부터는 web 자체에서 쿠키와 세션 ID (ABCD) 를 가지고 갑니다.6. 서버는 DB에서 쿠키 세션 ID (ABCD) 가 있는지 확인만 합니다. (없으면 새로 만들어요)➡️즉, 세션 ID는 최초 요청시에 생성하고 그 이후부터는 세션 ID (ABCD) 를 web에서 들고옵니다.세션 ID가 사라질 때1. 서버에서 세션 값을 삭제할 때2. 사용자가 브라우저를 닫을 때3. 시간이 만료될 때..