Cookie Attributes
webservice
7
COOKIE
4
API
18
White

Tất Huân viết ngày 28/07/2020

Bài viết sẽ đề cập tới những cookie attributes cần biết từ phổ biến đến ít phổ biến như Domain, Path, Max-Age, HttpOnly, Samesite,...
Mình có tham khảo tài liệu từ mozilla nhưng một số ý không rõ lắm nên mình viết theo kết quả thử nghiệm, có gì chưa đúng mong anh em cùng đóng góp!

Expires

Mốc thời gian hết hạn của cookie. Xem định dạng giá trị date tại đây.

Nếu trường này và Max-Age đều không được xác định, cookie sẽ được xoá khi kết thúc phiên.

Max-Age

Thời gian tồn tại của cookie tính bằng giây kể từ thời điểm cookie được set.

Nếu cả Expires và Max-Age được set, giá trị Max-Age sẽ được ưu tiên sử dụng.

Domain

Giá trị của tham số Domain chỉ định Host mà trình duyệt sẽ gửi cookie này lên.

Nếu không được chỉ định, giá trị mặc định sẽ là host của URL request lên. Khi đó cookie chỉ có giá trị với host này.

Nếu giá trị được set, cookie sẽ có giá trị như bảng bên dưới:

Image for post

Path

Khi một path được chỉ định, nó và các path con của nó sẽ nhận được cookie này.

VD: Khi Path=/sub1 thì cookie sẽ có giá trị với các path /sub1/sub2/sub1/sub2/sub3,...

Giá trị này áp dụng cho cả các subdomain mà cookie này đang có hiệu lực.

Secure

Khi giá trị này được set, cookie sẽ chỉ được gửi lên khi request sử dụng giao thức HTTPS.

HttpOnly

Khi giá trị này được set, cookie sẽ không thể đọc bằng Javascript.

(Cookie vẫn được gửi lên server với các request từ Javascript)

SameSite

Với mỗi giá trị, tham số này có một ý nghĩa khác nhau:

  • Strict: Cookie sẽ chỉ được gửi lên server khi giá trị referer của request này match với giá trị domain của cookie.\ Như vậy nghĩa là khi chúng ta request trực tiếp URL, các cookie sẽ không được gửi lên bởi lúc này referer bằng rỗng. Giả sử URL này chỉ được truy cập khi đã login thì khi đó chúng ta sẽ ở trạng thái chưa login mặc dù trước đó đã login.
  • Lux: Cookie cũng được bảo vệ như Strict, tuy nhiên với Lux, cookie sẽ được gửi lên với bất kỳ referer nào khi request hiện tại đang sử dụng HTTP method an toàn bao gồm GET, HEAD, OPTIONS và TRACE.
  • None: Cookie được gửi lên với mọi request bất kể same-site hay cross-site. Giá trị này bắt buộc sử dụng cùng tham số Secure.

Refer

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie\
https://web.dev/samesite-cookies-explained/

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Tất Huân

10 bài viết.
2 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
7 0
Sử dụng Jacksondatabind mapping Object Json và ứng dụng load file config 1. Mapping Object Json Jacksondatabind Maven: com.fasterxml.jackson.c...
Tất Huân viết hơn 2 năm trước
7 0
White
5 2
Một số hàm giúp mapping data đơn giản với Groovy Ví dụ với list data như sau: def student1 = name: "Huan", age: 22, gender: "male"] def student...
Tất Huân viết hơn 2 năm trước
5 2
White
5 0
Trước tiên mình muốn làm rõ khái niệm Vertical và Horizontal scaling: (Ảnh) Nguồn ảnh: Internet Ví dụ liên tưởng: ================= Giả sử bạn...
Tất Huân viết 1 năm trước
5 0
Bài viết liên quan
White
20 1
Cookie, session, token, JWT, lưu token ở đâu, các mối quan tâm về xác thực trong một hệ thống SinglePage Application... tất cả mọi thứ bạn cần biết...
Tu Huynh viết gần 2 năm trước
20 1
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
10 bài viết.
2 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!