Phân biệt same-site và same-origin

195

Bài viết được sự cho phép của tác giả Lưu Bình An

1. Origin

origin = scheme + host name + port

Ví dụ nếu có URL là: https:///www.example.com:443/foo thì origin của nó là https://www.example.com:443

  .NET core vs ASP.NET core: Phân biệt .NET Framework, .NET Core và Mono
  10 lý do kiểm thử phần mềm trở thành một nghề thời thượng

Vậy same-origin tức là những url có cùng scheme, host name, port, ngược lại thì gọi là cross-origin

Origin A Origin B
https://www.example.com:443 https://example.com:443 cross-origin: khác subdomain
https://www.evil.com:443 cross-origin: khác domain
https://login.example.com:443 cross-origin: khác subdomain
http://www.example.com:443 cross-origin: khác scheme
https://www.example.com:80 cross-origin: khác port
https://www.example.com same-origin: ngầm hiểu cùng port 443 (port mặc định của web)

2. Site

Top-level domains (TLDs) như .com.org được liệt kê trong trang này

site =TLD + phần ngay phía trước domain

Với ví dụ trên, thì site = example.com

Tuy nhiên với những tên miền kiểu .com.vngithub.io, cách xác định site này không còn đúng, nên người ta tạo thêm danh sách effective TLDs (eTLDs)xem chi tiết publicsuffix.org/list

Ví dụ, URL https://my-project.github.io thì site = my-project.github.io

Vậy same-site là những url có cùng site, ngược lại được gọi là cross-site

URL A URL B
https://www.example.com:443 https://www.evil.com:443 cross-site: khác domain
https://login.example.com:443 same-site: khác subdomain không sao
http://www.example.com:443 same-site: khác scheme không sao
https://www.example.com:80 same-site: khác port không sao
https://www.example.com same-site

Gần đây khái niệm same-site được mở rộng và bao gồm luôn scheme

Nếu tính luôn scheme, thì http://example.com và https://example.com là cross-site vì khác scheme

https://web.dev/same-site-same-origin/

Bài viết gốc được đăng tải tại vuilaptrinh.com

Có thể bạn quan tâm:

Xem thêm Việc làm IT hấp dẫn trên TopDev