Các phương pháp hay nhất về Giới thiệu và Chính sách giới thiệu

Trang này trình bày một số phương pháp hay nhất để đặt Referrer-Policy và sử dụng liên kết giới thiệu trong các yêu cầu gửi đến.

Tóm tắt

  • Việc rò rỉ thông tin ngoài ý muốn giữa các nguồn gốc sẽ gây tổn hại đến quyền riêng tư của người dùng web. Chính sách về nguồn giới thiệu có tính bảo vệ có thể giúp ích.
  • Hãy cân nhắc việc đặt chính sách về đường liên kết giới thiệu là strict-origin-when-cross-origin. Chính sách này giữ lại hầu hết các thông tin hữu ích của trang giới thiệu, đồng thời giảm thiểu rủi ro rò rỉ dữ liệu giữa các nguồn gốc.
  • Không sử dụng liên kết giới thiệu để bảo vệ khỏi hành vi Giả mạo yêu cầu trên nhiều trang web (CSRF). Thay vào đó, hãy sử dụng mã thông báo CSRF và các tiêu đề khác làm lớp bảo mật bổ sung.

Kiến thức cơ bản về Referer và Referrer-Policy

Yêu cầu HTTP có thể bao gồm một tiêu đề Referer không bắt buộc, cho biết nguồn gốc hoặc URL trang web mà yêu cầu được thực hiện. Tiêu đề Referrer-Policy xác định dữ liệu nào được cung cấp trong tiêu đề Referer.

Trong ví dụ sau, tiêu đề Referer bao gồm URL đầy đủ của trang trên site-one nơi yêu cầu được thực hiện.

Yêu cầu HTTP bao gồm tiêu đề Referer.
Yêu cầu HTTP có tiêu đề Referer.

Tiêu đề Referer có thể xuất hiện trong nhiều loại yêu cầu:

  • Yêu cầu điều hướng, khi người dùng nhấp vào một đường liên kết.
  • Yêu cầu tài nguyên phụ, khi trình duyệt yêu cầu hình ảnh, iframe, tập lệnh và các tài nguyên khác mà trang cần.

Đối với thao tác điều hướng và iframe, bạn cũng có thể truy cập vào dữ liệu này bằng JavaScript thông qua document.referrer.

Bạn có thể tìm hiểu nhiều điều từ các giá trị Referer. Ví dụ: một dịch vụ phân tích có thể sử dụng các tiêu đề này để xác định rằng 50% khách truy cập trên site-two.example đến từ social-network.example. Tuy nhiên, khi URL đầy đủ (bao gồm cả đường dẫn và chuỗi truy vấn) được gửi trong Referer giữa các nguồn gốc, thì điều này có thể gây nguy hiểm cho quyền riêng tư của người dùng và tạo ra rủi ro bảo mật:

URL có đường dẫn, được liên kết với nhiều rủi ro về quyền riêng tư và bảo mật.
Việc sử dụng URL đầy đủ có thể ảnh hưởng đến quyền riêng tư và bảo mật của người dùng.

URL từ 1 đến 5 chứa thông tin riêng tư và đôi khi là thông tin nhạy cảm hoặc thông tin nhận dạng. Việc rò rỉ các thông tin này một cách thầm lặng trên các nguồn gốc có thể xâm phạm quyền riêng tư của người dùng web.

URL số 6 là một URL chức năng. Nếu bất kỳ ai khác ngoài người dùng dự kiến nhận được thông tin này, thì kẻ xấu có thể chiếm quyền kiểm soát tài khoản của người dùng này.

Để hạn chế dữ liệu về trang giới thiệu được cung cấp cho các yêu cầu từ trang web của bạn, bạn có thể đặt chính sách về trang giới thiệu.

Có những chính sách nào và chúng khác nhau như thế nào?

Bạn có thể chọn một trong 8 chính sách. Tuỳ thuộc vào chính sách, dữ liệu có sẵn từ tiêu đề Referer (và document.referrer) có thể là:

  • Không có dữ liệu (không có tiêu đề Referer)
  • Chỉ nguồn gốc
  • URL đầy đủ: nguồn gốc, đường dẫn và chuỗi truy vấn
Dữ liệu có thể
    được chứa trong tiêu đề Người giới thiệu và document.referrer.
Ví dụ về dữ liệu của Referer.

Một số chính sách được thiết kế để hoạt động theo cách khác nhau tuỳ thuộc vào bối cảnh: yêu cầu cùng nguồn gốc hoặc khác nguồn gốc, liệu đích đến của yêu cầu có an toàn như nguồn gốc hay không, hoặc cả hai. Điều này giúp giới hạn lượng thông tin được chia sẻ giữa các nguồn gốc hoặc với các nguồn gốc kém an toàn hơn, đồng thời duy trì sự phong phú của liên kết giới thiệu trong trang web của riêng bạn.

Bảng sau đây cho biết cách chính sách liên kết giới thiệu hạn chế dữ liệu URL có sẵn từ tiêu đề Referer và document.referrer:

Phạm vi áp dụng chính sách Tên chính sách Trang giới thiệu: Không có dữ liệu Referer: Origin only URL giới thiệu: URL đầy đủ
Không xem xét bối cảnh của yêu cầu no-referrer kiểm tra
origin kiểm tra
unsafe-url kiểm tra
Tập trung vào bảo mật strict-origin Yêu cầu từ HTTPS đến HTTP Yêu cầu từ HTTPS đến HTTPS
hoặc HTTP đến HTTP
no-referrer-when-downgrade Yêu cầu từ HTTPS đến HTTP Yêu cầu từ HTTPS đến HTTPS
hoặc HTTP đến HTTP
Tập trung vào quyền riêng tư origin-when-cross-origin Yêu cầu khác nguồn gốc Yêu cầu cùng nguồn gốc
same-origin Yêu cầu khác nguồn gốc Yêu cầu cùng nguồn gốc
Chú trọng quyền riêng tư và bảo mật strict-origin-when-cross-origin Yêu cầu từ HTTPS đến HTTP Yêu cầu khác nguồn gốc
từ HTTPS đến HTTPS
hoặc HTTP đến HTTP
Yêu cầu cùng nguồn gốc

MDN cung cấp danh sách đầy đủ các chính sách và ví dụ về hành vi.

Dưới đây là một số điều cần lưu ý khi đặt chính sách liên kết giới thiệu:

  • Tất cả chính sách có tính đến lược đồ (HTTPS so với HTTP) (strict-origin, no-referrer-when-downgrade và strict-origin-when-cross-origin) đều xử lý các yêu cầu từ một nguồn gốc HTTP đến một nguồn gốc HTTP khác theo cách giống như các yêu cầu từ một nguồn gốc HTTPS đến một nguồn gốc HTTPS khác, mặc dù HTTP kém an toàn hơn. Đó là vì đối với các chính sách này, điều quan trọng là liệu có xảy ra tình trạng hạ cấp bảo mật hay không; tức là liệu yêu cầu có thể làm lộ dữ liệu từ một nguồn gốc đã mã hoá sang một nguồn gốc chưa mã hoá hay không, như trong các yêu cầu HTTPS → HTTP. Yêu cầu HTTP → HTTP hoàn toàn không được mã hoá, vì vậy, không có hoạt động hạ cấp.
  • Nếu một yêu cầu là cùng nguồn gốc, thì có nghĩa là giao thức (HTTPS hoặc HTTP) là giống nhau, vì vậy, không có sự hạ cấp bảo mật.

Chính sách trường giới thiệu mặc định trong trình duyệt

Tính đến tháng 10 năm 2021

Nếu không có chính sách nào về trang giới thiệu được đặt, thì trình duyệt sẽ sử dụng chính sách mặc định.

Trình duyệt Referrer-Policy mặc định/Hành vi
Chrome Mặc định là strict-origin-when-cross-origin.
Firefox Mặc định là strict-origin-when-cross-origin.
Kể từ phiên bản 93, đối với người dùng Chế độ bảo vệ nghiêm ngặt khỏi hoạt động theo dõi và Chế độ duyệt web riêng tư, các chính sách về trang giới thiệu ít hạn chế hơn no-referrer-when-downgrade, origin-when-cross-origin và unsafe-url sẽ bị bỏ qua đối với các yêu cầu trên nhiều trang web, nghĩa là trang giới thiệu luôn bị cắt bớt đối với các yêu cầu trên nhiều trang web, bất kể chính sách của trang web.
Edge Mặc định là strict-origin-when-cross-origin.
Safari Giá trị mặc định tương tự như strict-origin-when-cross-origin, nhưng có một số điểm khác biệt cụ thể. Hãy xem phần Ngăn chặn việc theo dõi bằng tính năng Chống theo dõi để biết thông tin chi tiết.

Các phương pháp hay nhất để thiết lập chính sách liên kết giới thiệu

Có nhiều cách để đặt chính sách liên kết giới thiệu cho trang web của bạn:

Bạn có thể đặt các chính sách khác nhau cho các trang, yêu cầu hoặc phần tử khác nhau.

Tiêu đề HTTP và phần tử meta đều ở cấp trang. Thứ tự ưu tiên để xác định chính sách có hiệu lực của một phần tử như sau:

  1. Chính sách ở cấp phần tử
  2. Chính sách cấp trang
  3. Mặc định của trình duyệt

Ví dụ:

index.html:

<meta name="referrer" content="strict-origin-when-cross-origin" />
<img src="..." referrerpolicy="no-referrer-when-downgrade" />

Hình ảnh được yêu cầu theo chính sách no-referrer-when-downgrade và tất cả các yêu cầu tài nguyên phụ khác từ trang này đều tuân theo chính sách strict-origin-when-cross-origin.

Làm cách nào để xem chính sách về đường liên kết giới thiệu?

securityheaders.com rất hữu ích để xác định chính sách mà một trang web hoặc trang cụ thể đang sử dụng.

Bạn cũng có thể sử dụng công cụ cho nhà phát triển trong Chrome, Edge hoặc Firefox để xem chính sách liên kết giới thiệu được dùng cho một yêu cầu cụ thể. Tại thời điểm viết bài này, Safari không hiển thị tiêu đề Referrer-Policy, nhưng có hiển thị Referer đã được gửi.

Ảnh chụp màn hình của bảng điều khiển Mạng trong Chrome DevTools, cho thấy Referer và Referrer-Policy.
Bảng điều khiển Mạng của Chrome DevTools có một yêu cầu được chọn.

Bạn nên đặt chính sách nào cho trang web của mình?

Bạn nên đặt rõ ràng một chính sách tăng cường quyền riêng tư, chẳng hạn như strict-origin-when-cross-origin (hoặc nghiêm ngặt hơn).

Tại sao lại "rõ ràng"?

Nếu bạn không đặt chính sách về trang giới thiệu, thì chính sách mặc định của trình duyệt sẽ được sử dụng. Trên thực tế, các trang web thường tuân theo chính sách mặc định của trình duyệt. Nhưng cách này không lý tưởng vì:

  • Mỗi trình duyệt có các chính sách mặc định khác nhau, vì vậy, nếu bạn dựa vào chế độ mặc định của trình duyệt, thì trang web của bạn sẽ không hoạt động như dự kiến trên các trình duyệt.
  • Các trình duyệt đang áp dụng các chế độ mặc định nghiêm ngặt hơn như strict-origin-when-cross-origin và các cơ chế như cắt bớt liên kết giới thiệu cho các yêu cầu khác nguồn gốc. Việc chọn rõ ràng một chính sách tăng cường quyền riêng tư trước khi các chế độ mặc định của trình duyệt thay đổi sẽ giúp bạn có quyền kiểm soát và chạy các thử nghiệm khi thấy phù hợp.

Tại sao nên dùng strict-origin-when-cross-origin (hoặc nghiêm ngặt hơn)?

Bạn cần có một chính sách bảo mật, tăng cường quyền riêng tư và hữu ích. "Hữu ích" có nghĩa là gì tuỳ thuộc vào những gì bạn muốn từ tệp giới thiệu:

  • Bảo mật: nếu trang web của bạn sử dụng HTTPS (nếu không, hãy ưu tiên việc này), thì bạn không muốn URL của trang web bị rò rỉ trong các yêu cầu không phải HTTPS. Vì bất kỳ ai trên mạng cũng có thể thấy những thông tin này, nên việc rò rỉ sẽ khiến người dùng của bạn gặp phải các cuộc tấn công xen giữa. Các chính sách no-referrer-when-downgrade, strict-origin-when-cross-origin, no-referrer và strict-origin sẽ giải quyết vấn đề này.
  • Tăng cường quyền riêng tư: đối với yêu cầu khác nguồn gốc, no-referrer-when-downgrade sẽ chia sẻ URL đầy đủ, điều này có thể gây ra vấn đề về quyền riêng tư. strict-origin-when-cross-origin và strict-origin chỉ chia sẻ nguồn gốc, còn no-referrer không chia sẻ gì cả. Do đó, bạn có thể dùng strict-origin-when-cross-origin, strict-origin và no-referrer làm các lựa chọn tăng cường quyền riêng tư.
  • Hữu ích: no-referrer và strict-origin không bao giờ chia sẻ URL đầy đủ, ngay cả đối với các yêu cầu cùng nguồn gốc. Nếu bạn cần URL đầy đủ, thì strict-origin-when-cross-origin là lựa chọn phù hợp hơn.

Tất cả những điều này có nghĩa là strict-origin-when-cross-origin thường là một lựa chọn hợp lý.

Ví dụ: Đặt chính sách strict-origin-when-cross-origin

index.html:

<meta name="referrer" content="strict-origin-when-cross-origin" />

Hoặc phía máy chủ, ví dụ như trong Express:

const helmet = require('helmet');
app.use(helmet.referrerPolicy({policy: 'strict-origin-when-cross-origin'}));

Nếu strict-origin-when-cross-origin (hoặc nghiêm ngặt hơn) không phù hợp với tất cả các trường hợp sử dụng của bạn thì sao?

Trong trường hợp này, hãy áp dụng phương pháp tăng dần: đặt một chính sách bảo vệ như strict-origin-when-cross-origin cho trang web của bạn và nếu cần, hãy đặt một chính sách dễ dãi hơn cho các yêu cầu hoặc phần tử HTML cụ thể.

Ví dụ: chính sách cấp phần tử

index.html:

<head>
  <!-- document-level policy: strict-origin-when-cross-origin -->
  <meta name="referrer" content="strict-origin-when-cross-origin" />
  <head>
    <body>
      <!-- policy on this <a> element: no-referrer-when-downgrade -->
      <a src="…" href="…" referrerpolicy="no-referrer-when-downgrade"></a>
      <body></body>
    </body>
  </head>
</head>

Safari/WebKit có thể giới hạn document.referrer hoặc tiêu đề Referer cho các yêu cầu trên nhiều trang web. Xem chi tiết.

Ví dụ: chính sách ở cấp yêu cầu

script.js:

fetch(url, {referrerPolicy: 'no-referrer-when-downgrade'});

Bạn nên cân nhắc điều gì khác?

Chính sách của bạn phải phụ thuộc vào trang web và các trường hợp sử dụng, do bạn, nhóm của bạn và công ty của bạn xác định. Nếu một số URL chứa dữ liệu nhạy cảm hoặc dữ liệu nhận dạng, hãy đặt chính sách bảo vệ.

Các phương pháp hay nhất cho yêu cầu đến

Sau đây là một số nguyên tắc về việc cần làm nếu trang web của bạn sử dụng URL liên kết giới thiệu của các yêu cầu gửi đến.

Bảo vệ dữ liệu của người dùng

Referer có thể chứa dữ liệu riêng tư, cá nhân hoặc dữ liệu nhận dạng, vì vậy, hãy đảm bảo bạn xử lý dữ liệu đó đúng cách.

Trang giới thiệu đến có thể thay đổi {referer-can-change}

Việc sử dụng liên kết giới thiệu từ các yêu cầu khác nguồn gốc đến có một số hạn chế:

  • Nếu không có quyền kiểm soát đối với việc triển khai trình phát yêu cầu, bạn không thể đưa ra giả định về tiêu đề Referer (và document.referrer) mà bạn nhận được. Trình phát yêu cầu có thể quyết định chuyển sang chính sách no-referrer bất cứ lúc nào hoặc nói chung là chuyển sang chính sách nghiêm ngặt hơn so với chính sách mà họ đã sử dụng trước đây. Điều này có nghĩa là bạn nhận được ít dữ liệu từ Referer hơn so với trước đây.
  • Các trình duyệt ngày càng sử dụng Referrer-Policy strict-origin-when-cross-origin theo mặc định. Điều này có nghĩa là giờ đây, bạn có thể chỉ nhận được nguồn gốc thay vì URL liên kết giới thiệu đầy đủ trong các yêu cầu khác nguồn gốc đến, nếu trang web của người gửi không có chính sách nào được đặt.
  • Các trình duyệt có thể thay đổi cách quản lý Referer. Ví dụ: một số nhà phát triển trình duyệt có thể quyết định luôn cắt bớt liên kết giới thiệu đến nguồn gốc trong các yêu cầu tài nguyên phụ khác nguồn gốc để bảo vệ quyền riêng tư của người dùng.
  • Tiêu đề Referer (và document.referrer) có thể chứa nhiều dữ liệu hơn mức bạn cần. Ví dụ: tiêu đề này có thể chứa một URL đầy đủ trong khi bạn chỉ muốn biết liệu yêu cầu có phải là yêu cầu khác nguồn gốc hay không.

Lựa chọn thay thế cho Referer

Bạn có thể cần cân nhắc các giải pháp thay thế nếu:

  • Một tính năng thiết yếu của trang web sử dụng URL liên kết giới thiệu của các yêu cầu khác nguồn gốc gửi đến.
  • Trang web của bạn không còn nhận được một phần URL liên kết giới thiệu mà trang web cần trong một yêu cầu khác nguồn gốc. Điều này xảy ra khi trình phát yêu cầu thay đổi chính sách của họ hoặc khi họ không đặt chính sách và chính sách mặc định của trình duyệt đã thay đổi (như trong Chrome 85).

Để xác định các phương án thay thế, trước tiên, hãy phân tích phần nào của liên kết giới thiệu mà bạn đang sử dụng.

Nếu bạn chỉ cần nguồn gốc

  • Nếu bạn đang sử dụng liên kết giới thiệu trong một tập lệnh có quyền truy cập cấp cao nhất vào trang, thì window.location.origin là một giải pháp thay thế.
  • Nếu có, các tiêu đề như Origin và Sec-Fetch-Site sẽ cung cấp cho bạn Origin hoặc mô tả liệu yêu cầu có phải là yêu cầu khác nguồn gốc hay không, đây có thể chính xác là những gì bạn cần.

Nếu bạn cần các thành phần khác của URL (đường dẫn, tham số truy vấn…)

  • Các tham số yêu cầu có thể giải quyết trường hợp sử dụng của bạn, giúp bạn tiết kiệm công sức phân tích cú pháp của tệp giới thiệu.
  • Nếu bạn đang sử dụng liên kết giới thiệu trong một tập lệnh có quyền truy cập cấp cao nhất vào trang, thì window.location.pathname có thể là một giải pháp thay thế. Chỉ trích xuất phần đường dẫn của URL và truyền phần đó dưới dạng đối số để mọi thông tin có thể nhạy cảm trong các tham số URL đều không được truyền đi.

Nếu bạn không thể sử dụng các phương án thay thế này:

  • Kiểm tra xem bạn có thể thay đổi hệ thống của mình để yêu cầu trình phát yêu cầu (ví dụ: site-one.example) đặt rõ ràng thông tin bạn cần trong một số loại cấu hình hay không.
    • Ưu điểm: rõ ràng hơn, đảm bảo quyền riêng tư hơn cho người dùng site-one.example, có khả năng thích ứng tốt hơn trong tương lai.
    • Nhược điểm: có thể khiến bạn hoặc người dùng hệ thống của bạn phải làm nhiều việc hơn.
  • Kiểm tra xem trang web đưa ra yêu cầu có đồng ý đặt Chính sách về đường liên kết giới thiệu cho mỗi phần tử hoặc mỗi yêu cầu là no-referrer-when-downgrade hay không.
    • Nhược điểm: có thể ít đảm bảo quyền riêng tư hơn cho người dùng site-one.example, có thể không được hỗ trợ trong một số trình duyệt.

Bảo vệ chống giả mạo yêu cầu trên nhiều trang web (CSRF)

Trình phát yêu cầu luôn có thể quyết định không gửi liên kết giới thiệu bằng cách đặt chính sách no-referrer và đối tượng xấu thậm chí có thể giả mạo liên kết giới thiệu.

Sử dụng mã thông báo CSRF làm biện pháp bảo vệ chính. Để tăng cường bảo vệ, hãy sử dụng SameSite và thay vì Referer, hãy sử dụng các tiêu đề như Origin (có trong yêu cầu POST và CORS) và Sec-Fetch-Site nếu có.

Ghi nhật ký và gỡ lỗi

Hãy nhớ bảo vệ dữ liệu cá nhân hoặc dữ liệu nhạy cảm của người dùng có thể có trong Referer.

Nếu bạn chỉ sử dụng nguồn gốc, hãy kiểm tra xem bạn có thể sử dụng tiêu đề Origin để thay thế hay không. Điều này có thể cung cấp cho bạn thông tin cần thiết để gỡ lỗi theo cách đơn giản hơn mà không cần phân tích cú pháp liên kết giới thiệu.

Thanh toán

Nhà cung cấp dịch vụ thanh toán có thể dựa vào tiêu đề Referer của các yêu cầu đến để kiểm tra bảo mật.

Ví dụ:

  • Người dùng nhấp vào nút Mua trên online-shop.example/cart/checkout.
  • online-shop.example chuyển hướng đến payment-provider.example để quản lý giao dịch.
  • payment-provider.example kiểm tra Referer của yêu cầu này dựa trên danh sách các giá trị Referer được phép do người bán thiết lập. Nếu không khớp với bất kỳ mục nào trong danh sách, payment-provider.example sẽ từ chối yêu cầu. Nếu khớp, người dùng có thể tiếp tục giao dịch.

Các phương pháp hay nhất để kiểm tra bảo mật quy trình thanh toán

Là nhà cung cấp dịch vụ thanh toán, bạn có thể sử dụng Referer làm biện pháp kiểm tra cơ bản để chống lại một số cuộc tấn công. Tuy nhiên, chỉ riêng tiêu đề Referer không phải là cơ sở đáng tin cậy để kiểm tra. Trang web yêu cầu, cho dù họ có phải là người bán hợp pháp hay không, đều có thể đặt một chính sách no-referrer khiến thông tin Referer không được cung cấp cho nhà cung cấp dịch vụ thanh toán.

Việc xem xét Referer có thể giúp các nhà cung cấp dịch vụ thanh toán phát hiện những kẻ tấn công thiếu kinh nghiệm, những người không đặt chính sách no-referrer. Nếu bạn sử dụng Referer làm bước kiểm tra đầu tiên:

  • Đừng cho rằng Referer luôn có sẵn. Nếu có, hãy chỉ kiểm tra tiêu đề này dựa trên dữ liệu tối thiểu mà tiêu đề này có thể chứa, tức là nguồn gốc.
    • Khi đặt danh sách các giá trị Referer được phép, hãy đảm bảo chỉ bao gồm nguồn gốc và không có đường dẫn.
    • Ví dụ: các giá trị Referer được phép cho online-shop.example phải là online-shop.example, chứ không phải online-shop.example/cart/checkout. Bằng cách không mong đợi Referer nào hoặc giá trị Referer chỉ là nguồn gốc của trang web yêu cầu, bạn sẽ ngăn chặn được các lỗi có thể xảy ra do đưa ra giả định về Referrer-Policy của người bán.
  • Nếu không có Referer hoặc nếu có và quy trình kiểm tra nguồn gốc Referer cơ bản của bạn thành công, thì bạn có thể chuyển sang một phương thức xác minh khác đáng tin cậy hơn.

Để xác minh các khoản thanh toán một cách đáng tin cậy hơn, hãy cho phép người yêu cầu băm các tham số yêu cầu cùng với một khoá duy nhất. Sau đó, nhà cung cấp dịch vụ thanh toán có thể tính toán cùng một hàm băm ở phía bạn và chỉ chấp nhận yêu cầu nếu yêu cầu đó khớp với kết quả tính toán của bạn.

Điều gì xảy ra với Referer khi một trang web người bán HTTP không có chính sách liên kết giới thiệu chuyển hướng đến một nhà cung cấp dịch vụ thanh toán HTTPS?

Không có Referer nào xuất hiện trong yêu cầu gửi đến nhà cung cấp dịch vụ thanh toán HTTPS, vì hầu hết các trình duyệt đều sử dụng strict-origin-when-cross-origin hoặc no-referrer-when-downgrade theo mặc định khi một trang web không có chính sách nào được đặt. Việc Chrome thay đổi sang một chính sách mặc định mới sẽ không làm thay đổi hành vi này.

Kết luận

Chính sách liên kết giới thiệu bảo vệ là một cách hiệu quả để tăng cường quyền riêng tư cho người dùng.

Để tìm hiểu thêm về các kỹ thuật khác nhau nhằm bảo vệ người dùng, hãy xem bộ sưu tập An toàn và bảo mật của chúng tôi

Tài nguyên

Xin chân thành cảm ơn tất cả những người đánh giá đã đóng góp và phản hồi, đặc biệt là Kaustubha Govind, David Van Cleve, Mike West, Sam Dutton, Rowan Merewood, Jxck và Kayce Basques.