CSRF란CSRF(Cross-Site request Forgery, 사이트 간 요청 위조)는 웹 보안 취약점 중 하나로, 사용자가 의도하지 않은 요청을 공격자에 의해 대신 보내게 하는 공격 방식이다. 사용자가 로그인 상태일 때 공격자가 의도한 요청을 사용자 계정으로 서버에 전송하게 만들 수 있어 위험하다. 예시 1. 사용자가 https://bank.com에 로그인했다고 가정하자.로그인 후 세션 쿠키가 브라우저에 저장된다.Set-Cookie: sessionid=abc123; Secure; HttpOnly; SameSite=None 2. 사용자가 https://evil.com에 방문 (악성 사이트)악성 사이트에는 아래와 같은 자동 전송 요청 코드가 있다. Free iPhone! Click here!..
캐시캐시 적용 전첫 번째 요청 첫 번째 요청에서 1.1M를 전송받았다. 두 번째 요청 같은 사진을 두 번째로 요청했음에도 똑같이 1.1M를 전송받았다. 정리캐시가 없는 경우 데이터가 변경되지 않아도 네트워크를 통해서 계속 데이터를 받아야 한다.네트워크는 매우 느리고 비싸며 브라우저 로딩 속도는 느리다. 이는 느린 사용자 경험으로 이어진다. 캐시 적용 후 첫 번째 요청 서버에서 캐시 유효 시간을 지정하여 데이터를 전달하면 브라우저는 응답 데이터를 캐시에 저장하게 된다. 두 번째 요청 두 번째 요청이 발생하는 경우 서버로 요청하지 않고 캐시 저장소에 있는 캐시 유효 시간을 검증한다. 캐시가 사용 가능한 상태인 경우 캐시에서 해당 이미지를 찾아 사용하게 된다. 만약 캐시 시간이 초과되면 어떻게 될까? 캐시 ..
HTTP 헤더header-field = field-name ":" OWS field-value OWS (OWS : 띄어쓰기 허용)field-name에는 대소문자 구문 없음 용도http 전송에 필요한 모든 부가정보가 담긴다.예) 메시지 바디의 내용, 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보 등...표준 헤더가 너무 많다.필요시 임의의 헤더 추가가 가능하다. RFC2616 (과거)HTTP HeaderGeneral 헤더 : 메시지 전체에 적용되는 정보, 예) Connection: closeRequest 헤더 : 요청 정보, 예) User-Agent: Mozilla/5.0Response 헤더 : 응답 정보, 예) Server: ApacheEntity 헤더 : 엔티티 바디 정보..
상태 코드클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능1xx (Informational) : 요청이 수신되어 처리 중 (거의 사용하지 않는다.)2xx (Successful) : 요청 정상 처리3xx (Redirection) : 요청을 완료하려면 추가 행동 필요4xx (Client Error) : 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음5xx (Server Error) : 서버 오류, 서버가 정상 요청을 처리하지 못함 만약 모르는 상태 코드가 나타나면?클라이언트가 인식할 수 없는 상태코드를 서버가 반환하면 어떻게 이해해야 할까?클라이언트는 상위 상태코드로 해석하면 된다.미래에 새로운 상태 코드가 추가되어도 클라이언트는 변경 작업을 수행할 필요가 없다 예)299??? ..