보안 강화를 위해 Chrome 80부터 SameSite의 기본 속성값이 None 에서 Lax로 변경되었습니다.

현재 Chrome 84 에서 코로나로 인해 기능을 롤백했지만 Chrome 84이후(안정적인 버전, 7/14일 이후) 다시 재개할 계획이라고 합니다.

해당 속성의 변화는 Chrome 80 이상의 웹 브라우저만 해당하며 이후 Firefox, Edge등의 브라우저도 동일하게 적용한다고 합니다.

<img>, <form>, <iframe>, <link>, <a> 등에서 영향이 있습니다.

Android의 chrome에는 적용하지 않으며 iOS의 chrome은 영향이 없습니다.

 

SameSite 3가지 속성

None 

쿠키 사용에 있어서 소스가 되는 주소를 검증하지 않습니다.

동일 사이트, 크로스 사이트에 모두 쿠키 전송이 가능합니다.

 

Strict

보안 정책으로 다른 도메인일 경우 전송을 차단합니다.

소스가 되는 주소의 도메인과 요청하는 도메인이 일치하는지를 확인하여 일치할 경우에만 쿠키가 전송됩니다.

예시

www.google.com → www.google.com (O)

www.google.com → www.naver.com (X)

 

Lax

Strict 설정의 일부를 예외로 두고 동일하게 동작합니다.

예시

<a href>
<link href>
<form method=get>

 

예시

기본 값이 Lax로 변경함에 따라 None으로 설정하지 않으면 Lax가 적용됩니다.

None 설정 시 Secure 키워드를 같이 적용해야합니다.

 

Javascript 설정 예시

document.cookie = "name=yoon";
document.cookie = "name=yoon; SameSite=Lax"; // 위와 같다

document.cookie = "name=yoon; SameSite=None; Secure"; // Secure 추가

서버 설정에서 한번에 모든 쿠키 속성을 변경할 수도 있습니다.

 

마무리

SameSite 속성은 사용자에게 불편을 줄 수 있지만 CSRF(사이트 간 요청 위조, Cross-site request forgery) 보안을 강화할 수 있습니다.

소셜 미디어 플랫폼, 타 회사의 사이트와 연동된 페이지가 있는 경우에는 Strict으로 할 경우 쿠키가 차단되므로 사용 시마다 인증해야되는 불편함이 생기기 때문에 쿠키를 사용할때에는 상황을 고려해서 사용해야합니다.

 

 


 

참고 및 정보 출처

 

 

 

참조링크

릴리즈 정보

업그레이드 가이드

 

호환성

Browser jQuery
IE 6~8 jQuery 1.x
IE 9+ jQuery 2.x
Android 4.x jQuery 3.x
Android 4.5+
Safari on IOS 7+
jQuery 3.x

 

 

구버전과 최신버전 혼용

jQuery Migrate Plugin

jQuery 하위 버전 호환성을 위해 제공하는 플러그인

<script src="http://code.jquery.com/jquery-1.9.0.js"></script>
<script src="https://code.jquery.com/jquery-migrate-3.3.0.min.js"></script>

v1.4.1 : jQuery 1.9 이하의 버전을 3.0 버전까지 지원

v3.3.0 : jQuery 1.x버전, 1.9 이상의 버전을 3.0 버전까지 지원

 

정의

HTML의 클라이언트 사이드 조작을 단순화 하도록 설계된 크로스 플랫폼의 자바스크립트 라이브러리로

MIT 라이선스로 배포되는 무료 오픈소스 소프트웨어이다.

 

역사

Ajax 기술이 주목받기 시작하면서 자바스크립트의 중요성이 높아졌고 자바스크립트 라이브러리들이 생기기 시작했다.

jQuery도 그 중 하나였으며 단순하고 간결한 코드를 통해 DOM(Document Object Model)을 추상화해서 관리할 수 있기 때문에 선풍적인 인기를 끌었다.

 

사용법

파일 설명

  • uncompressed : 원본 파일 (확장자 : .js)

  • minified : 원본을 압축한 파일 (확장자 : .min.js)

  • slim : 해당 버전에서 필요없다고 생각하는 라이브러리를 제거한 파일 (.slim.js)

  • slim minified : slim 파일을 압축한 파일(.slim.min.js)

 

CDN

사이트에서 원하는 버전을 클릭하여 url 주소 입력하는 방식이다.

<script src="https://code.jquery.com/jquery-3.x-git.min.js"></script>

ㄴ CDN이란?

  • 콘텐츠 전송 네트워크(Content delivery network / content distribution network)로 지리적으로 분산되어 있는 서버 네트워크이다.
  • 가까운 서버를 찾아 서비스를 제공해주며 jQuery에서 제공하는 CDN 서버를 이용하게된다.

ㄴ CDN 사용을 지양하는 이유?

  • 서버 장애나 문제가 발생할 경우 멀리 있는 서버를 이용하게될 수도 있으며 이 경우는 속도 저하등의 원인으로 사용자경험이 저하될 수 있다.

  • 서버 문제로 서비스를 이용하지 못할수도 있다.

 

다운로드

사이트에서 다운로드한 파일을 원하는 경로에 두고 경로를 입력하는 방식이다.

<script src="../js/jquery.min.js"></script>

 

 

 

1.Git hub에서 Token 발급

Token은 아이디나 패스워드 대신해 인증을 담당하는 역할을 합니다.

 

 

[발급방법]

본인의 계정 > Settings > Developer settings > Personal access tokens (바로가기 링크)

계정 > settings
developer settings
personal access tokens

 

Generate new token을 클릭합니다.

Generate new token

 

New personal access token 페이지

Note에 제목을 입력한 후 gist 체크박스를 체크해줍니다.

저는 Note를 vscoedSettingsSync로 입력했습니다.

 

note입력 / gist 체크

 

Gist는 Git hub에서 제공하는 pastebin 서비스입니다.

 

pastebin 서비스란?

더보기

텍스트 스토리지 사이트.

사용자가 plain text(그래픽 표현이나 그 밖의 오브젝트이 아닌, 읽을 수 있는 자료의 문자열만을 대표하는 데이터)를 저장할 수 있는 웹 애플리케이션입니다.

 

이때 저장하고 나면 Token 정보가 나오는데, 이 Token 정보를 따로 저장해둡니다.

token은 vscode의 동기화 작업시에 필요하며 페이지 새로고침이나 재 방문시에 보안상의 이유로 확인할 수 없습니다.

token 정보

 

2.Settings Sync 확장 플러그인을 통한 동기화(내 설정 업로드하기)

 

먼저 동기화시킬때 사용할 확장 플러그인을 다운로드 합니다.

 

Settings Sync 검색 후 install

Settings Sync

 

설정페이지로 이동합니다.

단축키(Shift + Ctrl + p)를 이용해서 command box가 뜨면

'sync'를 검색 > 'sync : Advanced Options' 클릭 > 'sync : 설정 열기' 클릭

sync 검색
sync 설정 열기 클릭

 

설정 페이지로 이동이 되면 액세스 토큰(Access token)을 입력해줍니다.

이때 포커스가 칸에서 나오게되면 자동 저장됩니다.

access token 입력

 

단축키(Shift + Alt + u / 맥은 Shift + Option + u)를 통해 정보를 업로드 합니다.

단축키를 누를경우 좌측 하단 블루바에 진행 정보가 나타나며 output 창이 열리면서 세팅정보 업로드를 확인할 수 있습니다. 우측 알림창에서 Gist id를 확인할 수 있습니다. (Gist id를 통해 업로드한 세팅을 가져옵니다.)

우측 하단 블루 바
하단 output
좌측 하단에 알림으로 뜨는 Gist id

 

 

저장된 정보 확인 방법

 

홈페이지에서 확인할 수 있습니다. (바로가기링크)

링크로 이동한 다음 cloudSettings 클릭합니다.

cloudSettings 

 

이동한 후 페이지의 URL을 확인하면 Gist Id를 확인할 수 있습니다.

url 설명

 

그리고 이 페이지에서 세팅된 확장플러그인의 정보도 확인할 수 있습니다.

extensions.json 파일

 

3.Settings Sync 확장 플러그인을 통한 동기화(내 설정 가져오기)

 

다시 에디터로 돌아가서 설정페이지로 이동합니다.

단축키(Shift + Ctrl + p)를 이용해서 command box가 뜨면

'sync'를 검색 > 'sync : Advanced Options' 클릭 > 'sync : 설정 열기' 클릭

 

이번에는 액세스 토큰 옆에 Gist ID가 자동으로 작성되어있는 것을 확인합니다.

이 부분은 업로드를 진행한 PC이기 때문에 확인이 가능한 것이고 만약 작성된 것이 없다면 확인한 Gist id를 넣어줍니다.

 

업로드를 진행했더 PC에서 테스트를 위한 작업이라면 Settings Sync를 설정한 기록이 있기 때문에 Reset해줍니다.

(새로운 PC라면 할 필요없음)

 

 

리셋 방법

단축키(Shift + Ctrl + p) > Sync 검색 >  Sync: Reset Extension Settings

reset

 

리셋을 진행했거나 필요가 없다면 Gist id 및 액세스 토큰을 입력합니다.

gist id, access token 입력

 

 

입력한 Gist id 와 Access token을 통해 플러그인 정보를 동기화합니다.

단축키(Shift + Alt + D, 맥은 Shift + Option + D)를 눌러 다운로드를 진행합니다.

* 만약 다운로드가 아닌 업로드를 할 경우 새로운 환경이 덮여씌여지므로 주의할 것

 

output이 뜨면서 실행되는 것을 확인합니다.

output

 

VSCode를 재 실행 해줍니다.

 

 

 

 

테스트 방법

VSCode 및 관련 파일 삭제

 

프로그램 추가/제거에서 microsoft visual studio code 제거

프로그램 추가/제거

 

VSCode 다운로드 받았던 파일에서 .vscode 파일 삭제

(vscode의 세팅파일이 들어있으므로 만약을 대비해 백업해두는것도 나쁘지 않습니다.)

<install path>/.vscode 삭제

 

VSCode 재 다운로드 후 테스트 진행

+ Recent posts