깃허브 기술관련 자료 인쇄를 위한 정리 네트워크 및 보안
TCP와 UDP OSI 7계층에서 전송계층Transport layer에 속하는 데이터 전송 프로토콜입니다. 여기선 중요한 것만 살펴보고 깊게는 들어가지 않습니다. 데이터가 이유없이 전달되는 것을 보장하는 프로토콜로 다음 특징들을 갖는다.
JSONPJSON with Padding
CORS가 나오기 이전에 사용하던 방식으로,
하지만 JSON 데이터의 포맷이 name john, age 19
위와 같이 생겼기 때문에 다음과 같이 삽입됩니다. 이는 자바스크립트의 문법에 맞지 않고 애초에 요청을 한 이유가 데이터를 가공하기 위함이기 때문에 이걸 가공하는 콜백함수를 넘기는 방식이 바로 JSONP입니다. 즉, 받은 JSON 데이터를 파라미터로 콜백함수에 넘겨서 실시하는 방식입니다.
위와 같이 넘기며, 결국 태그에는 아래와 같이 나타납니다. 최신 브라우저에서는 거의 사용 안하고 오래된 브라우저에서 사용하는데 보안문제가 있어서 CORS를 권장합니다. 웹홈페이지 운영자가 아닌 사람이 웹사이트에 악성 스크립트를 삽입할 수 있는 취약점을 이용한 공격기법입니다.
Session
세션이란 브라우저가 서버에 연결되어 있는 동안 지속적인 데이터 집합입니다. 사용자가 웹 사이트에 방문하여 서버에 요청을 보내게 되면, 사용자의 정보를 서버에 저장하고 그 정보를 식별할 수 있는 세션 ID를 SetCookie 헤더로 클라이언트에게 전송합니다. 위에서 말했던 것처럼 클라이언트는 쿠키로 세션 ID를 관리하고 해당 서버에 요청할 때마다. Cookie 헤더에 세션 ID를 포함시켜 전송하기 때문에 서버는 클라이언트를 식별하여 그에 맞는 정보를 응답으로 줄 수 있게 됩니다.
따라서, 아래와 같은 목적으로 사용한다고 할 수 있어요. 민감한 정보 관리, 사용자의 비밀번호 및 개인정보 쿠키
고객 쪽에 저장합니다. (웹 브라우저) 브라우저가 꺼져도 삭제되지 않고 사용자가 삭제하거나 정해진 시간만큼 유지됩니다. 문자열만 저장할 수 있어요.
Method
클라이언트가 서버에 요청방법을 정의하는 것으로 주어진 리소스에 수행하길 요구하는 행동을 나타낸다. GET 서버에게 조회할 리소스를 요청합니다. READ, 조회 POST 서버에게 body에 생성할 데이터를 삽입하여 전송합니다. CREATE, 생성 PUT 서버에게 에 수정할 데이터를 삽입하여 전송합니다. UPDATE, 편집 DELETE 서버에게 삭제할 리소스를 요청합니다. DELETE, 삭제 PATCH PUT과 비슷하지만 일부만 수정해야하는 점에서 다릅니다.
사용 예시
URL
프로토콜 http ftpexample.comdownload.zip 프로토콜 ftp mailto 프로토콜 mailto URN
urnisbn0451450523 책을 식별하는 ISBN 번호 urnuuid6e8bc4309c3a11d996690800200c9a66 전 세계에서 고유한 번호 REST API
학술적으로 철저한 내용을 보고 싶다면 REST를 만든 을 보는 것이 좋습니다.
여기선 최대한 REST와 API가 무엇인지에 대해 느끼는 것을 목적으로 합니다.
헤더 압축Header Compression
헤더 테이블Header Table을 사용하여 이전 헤더 정보를 유지하고 허프만 인코딩 기법으로 헤더를 압축해서 전송하여 중복과 크기를 줄인다. URL과 URN을 포함하는 URIURIUniform Resource Identifier 통합 자원 식별자라는 의미에서 인터넷 상의 리소스 를 고유하게 식별할 수 있는 식별자입니다. URI에는 위치를 알려주는 URLUniform Resource Locator 와 전 세계를 통틀어 고유한 이름을 의미하는 URNUniform Resource Name 이 존재합니다.
CSRFCross Site Request Forgery, 사이트간 요청변조
저장 XSS : 웹사이트에 취약점이 있는 웹 서버에 스크립트를 저장시켜서 해당 웹사이트를 요청하는 사용자로 하여금 스크립트를 실행하게 하는 기법입니다. 반사 XSS : 검색을 사용할 때 결과가 없으면 브라우저에서 입력한 값을 문서에 포함하여 응답하는데 이를 사용하여 스크립트를 실시하는 기법으로 악성 URL을 배포하여 클릭하도록 유도하는 방법을 사용합니다.
DOM 기반 XSS 공격 스크립트가 DOM 생성의 일부로 실행되고 공격하는 기법으로 반사 XSS와 비슷하게 악성 URL을 배포하여 클릭하도록 유도합니다.
자주 묻는 질문
JSONPJSON with
CORS가 나오기 이전에 사용하던 방식으로, 하지만 JSON 데이터의 포맷이 name john, age 19위와 같이 생겼기 때문에 다음과 같이 삽입됩니다. 좀 더 자세한 사항은 본문을 참고해 주세요.
Session
세션이란 브라우저가 서버에 연결되어 있는 동안 지속적인 데이터 집합입니다. 좀 더 자세한 사항은 본문을 참고해 주세요.
Method
클라이언트가 서버에 요청방법을 정의하는 것으로 주어진 리소스에 수행하길 요구하는 행동을 나타낸다. 자세한 내용은 본문을 참고하시기 바랍니다.
목차