Defaults.Exposed

Defaults.ExposedCách khắc phục › Referrer-Policy

Cách khắc phục Referrer-Policy

Referrer-Policy là một hướng dẫn một dòng website của bạn trao cho trình duyệt của mỗi khách truy cập, kiểm soát bao nhiêu địa chỉ web của bạn đi cùng họ khi họ nhấp vào liên kết đến trang khác. Không có nó, địa chỉ đầy đủ của bất kỳ trang nào họ đang trên — từ khóa tìm kiếm, số tài khoản, liên kết đặt lại, đường dẫn trang nội bộ và tất cả — được lặng lẽ trao cho trang tiếp theo họ hạ cánh, kể cả nhà quảng cáo, công ty analytics, và bất cứ nơi nào liên kết trỏ đến.

Điểm mấu chốt với doanh nghiệp bạn: Mỗi lần khách truy cập nhấp liên kết đi ra, quảng cáo, hoặc resource chia sẻ, trình duyệt của họ có thể trao địa chỉ đầy đủ của trang của bạn cho đích đến — và nếu địa chỉ của bạn mang theo truy vấn tìm kiếm, ID khách hàng, số đơn hàng, hoặc liên kết một lần, bạn đang rò rỉ dữ liệu khách hàng cho các bên thứ ba bạn không kiểm soát. Đó là vấn đề bảo vệ dữ liệu mà cơ quan quản lý coi nghiêm túc, một hứa hẹn quyền riêng tư bị phá vỡ lặng lẽ, và khoảng cách có điểm mà nhóm bảo mật của khách hàng sẽ gắn cờ trong thẩm định.

Điều này có thể gây thiệt hại gì

Tại sao điều này quan trọng. Trình duyệt, để chính chúng, là nói nhiều: theo mặc định chúng nói với trang web tiếp theo nơi khách truy cập vừa đến từ đó, thường bao gồm địa chỉ đầy đủ của trang. Với trang brochure điều đó có thể vô hại, nhưng ngay khi địa chỉ của bạn chứa bất cứ thứ gì cá nhân — từ khóa tìm kiếm, ID đơn hàng, email trong liên kết, đường dẫn riêng tư — mặc định đó lặng lẽ rò rỉ nó cho các bên bên ngoài. Referrer-Policy là cài đặt duy nhất nói với trình duyệt dừng chia sẻ quá mức. Đây là kiểm tra có điểm trên scorecard của bạn đáng điểm thật, nó ánh xạ trực tiếp đến nghĩa vụ tối thiểu hóa dữ liệu theo luật quyền riêng tư, và là một trong các header bảo mật tiêu chuẩn mà bất kỳ đánh giá chuyên nghiệp nào cũng mong tìm thấy.

Thực ra là gì, giải thích đơn giản

Mỗi lần khách truy cập trên website của bạn nhấp liên kết đến trang khác — liên kết đi ra, biểu ngữ quảng cáo, “chia sẻ cái này”, thậm chí font hoặc ảnh được tải từ nơi khác — trình duyệt của họ lặng lẽ đính kèm ghi chú nói họ đến từ trang nào của bạn. Ghi chú đó được gọi là referrer.

Được dùng hợp lý, referrer vô hại và thậm chí hữu ích: đây là cách các trang khác biết lưu lượng đến từ bạn, và nó cung cấp nhiều analytics trung thực. Vấn đề nằm ở hành vi mặc định. Không được quản lý, trình duyệt không chỉ nói “họ đến từ your-business.com” — nó thường trao địa chỉ đầy đủ của trang chính xác, bao gồm mọi thứ sau tên miền. Và địa chỉ web mang theo nhiều hơn mọi người nhận ra: từ khóa tìm kiếm được gõ vào trang của bạn, số đơn hàng và tài khoản, đường dẫn đến trang chỉ thành viên riêng tư, thậm chí token bí mật một lần trong liên kết đặt lại mật khẩu và xác nhận.

Referrer-Policy là một hướng dẫn duy nhất website của bạn gửi đến trình duyệt nói bao nhiêu ghi chú đó được phép chia sẻ. Bạn có thể nói với nó chỉ chia sẻ tên miền của bạn, chỉ với các trang khác trên chính trang của bạn, hoặc không gì cả. Hãy nghĩ nó như sự khác biệt giữa trao cho người lạ địa chỉ nhà đầy đủ của bạn kèm theo lịch trình hàng ngày, so với chỉ nói với họ bạn sống ở thành phố nào.

Đây là một trong số nhỏ “header bảo mật” — hướng dẫn ngắn mà trang của bạn trao cho trình duyệt của mỗi khách truy cập. Nó không thay đổi cách trang của bạn trông hay hoạt động. Nó đơn giản ngăn trình duyệt chia sẻ quá mức thay mặt bạn.

Điều này có thể khiến bạn mất gì

Đây là những cách cụ thể, hàng ngày mà thiếu hoặc Referrer-Policy cho phép cắn doanh nghiệp thật. Không ai trong số này cần hacker — chúng xảy ra tự động, mỗi ngày, trong sử dụng bình thường.

Thực ra nó là gì

Theo mặc định, trình duyệt tuân theo hành vi tương đương “strict-origin-when-cross-origin” trên các phiên bản hiện đại — nhưng bạn không thể dựa vào điều đó, vì trình duyệt cũ hơn, webview nhúng, và một số cấu hình nhất định vẫn quay lại rò rỉ nhiều hơn. Cách duy nhất để chắc chắn là đặt chính sách rõ ràng. Khi bạn làm, bạn chọn một quy tắc từ danh sách ngắn. Những cái quan trọng:

Và hai giá trị cần tránh, vì scorecard coi chúng không tốt hơn không có header:

“Tốt” trông như thế nào: header Referrer-Policy hiện diện và được đặt thành giá trị hạn chế — với hầu hết doanh nghiệp, strict-origin-when-cross-origin. Điều này giữ analytics referral hoạt động trong khi đảm bảo không có gì qua tên miền của bạn bao giờ đến trang bên ngoài.

Cách sửa (miễn phí, khoảng 5 phút)

Chuyển phần này cho người IT, nhà phát triển web, hoặc hỗ trợ hosting của bạn — bản sửa miễn phí, là một dòng duy nhất, và sẽ không làm hỏng trang của bạn. Không có triển khai rủi ro ở đây: không giống một số cài đặt bảo mật, Referrer-Policy hợp lý không thể ngừng hoạt động các liên kết hoặc trang của bạn. Nó chỉ cắt bớt những gì được chia sẻ với các trang khác.

Mục tiêu: đặt response header Referrer-Policy với giá trị strict-origin-when-cross-origin (hoặc giá trị hạn chế hơn nếu bạn muốn chia sẻ ít hơn).

Cloudflare (không có code — dễ nhất nếu bạn dùng nó): Dashboard → tên miền của bạn → Rules → Transform Rules → Modify Response Header → Tạo quy tắc → Đặt static → Tên header Referrer-Policy, giá trị strict-origin-when-cross-origin → áp dụng cho tất cả yêu cầu đến → Deploy.

Google Workspace / Microsoft 365: những thứ này quản lý email của bạn, không phải website, vì vậy header được đặt bất cứ nơi nào trang của bạn thực sự được lưu trữ (web host, CDN, hoặc máy chủ) — không phải trong Workspace hoặc admin 365. Xác định host và dùng tùy chọn phù hợp bên dưới.

Nginx:

add_header Referrer-Policy "strict-origin-when-cross-origin" always;

Apache (trong cấu hình trang hoặc .htaccess):

Header always set Referrer-Policy "strict-origin-when-cross-origin"

IIS (web.config):

<httpProtocol><customHeaders>
  <add name="Referrer-Policy" value="strict-origin-when-cross-origin" />
</customHeaders></httpProtocol>

Node / Express:

app.use((req, res, next) => { res.setHeader('Referrer-Policy', 'strict-origin-when-cross-origin'); next(); });

WordPress / host phổ biến: hầu hết WordPress được quản lý và host chia sẻ để bạn thêm response header qua plugin bảo mật, bảng “headers” trong control panel hosting, hoặc đoạn .htaccess ở trên. Nếu bạn đằng sau Cloudflare, phương pháp Cloudflare là sạch nhất và áp dụng khắp nơi cùng lúc.

Sau khi áp dụng: tải trang của bạn và chạy lại kiểm tra, hoặc dùng browser developer tools (tab Network → nhấp tài liệu chính → Response Headers) để xác nhận Referrer-Policy: strict-origin-when-cross-origin hiện diện.

Các lỗi phổ biến

Tóm lại

Referrer-Policy là bản sửa quyền riêng tư rẻ nhất, an toàn nhất trên scorecard của bạn: một dòng, khoảng năm phút, không rủi ro làm hỏng gì, và miễn phí. Nó ngăn trình duyệt của khách truy cập lặng lẽ trao địa chỉ trang riêng tư của bạn — và bất cứ dữ liệu cá nhân nào chúng chứa — cho mọi trang bên ngoài họ nhấp qua. Đặt nó thành strict-origin-when-cross-origin, xác nhận nó live trên mỗi trang, và khoảng cách nghiêm trọng trung bình và 15 điểm của nó được đóng lại.

FAQ

Tôi không rành kỹ thuật — đây có phải thứ tôi thực sự có thể xử lý không?

Có, và đây là một trong những bản sửa dễ nhất trên toàn bộ scorecard. Đây là một dòng duy nhất được thêm bởi người chạy website hoặc hosting của bạn, và trên dịch vụ như Cloudflare chỉ là vài click không cần code. Chuyển phần 'Cách sửa' bên dưới cho họ. Miễn phí, mất khoảng năm phút, và không giống một số cài đặt bảo mật nó sẽ không làm hỏng gì trên trang của bạn.

'Referrer' thực ra có nghĩa là gì ở đây?

Khi ai đó nhấp liên kết từ trang của bạn đến trang web khác, trình duyệt của họ gửi kèm một ghi chú nói họ đến từ trang nào — ghi chú đó được gọi là referrer. Nó thực sự hữu ích cho analytics trung thực. Vấn đề là, theo mặc định, ghi chú thường bao gồm địa chỉ trang đầy đủ của bạn, không chỉ tên miền. Nếu địa chỉ đó chứa bất cứ thứ gì riêng tư, nó được chia sẻ quá. Referrer-Policy cho bạn cắt bớt ghi chú xuống chỉ còn tên miền, hoặc tắt nó, để không có gì nhạy cảm bị rò rỉ.

Điều này có thực sự đáng làm nếu trang của tôi không xử lý thanh toán không?

Hầu như chắc chắn có. Bạn không cần trang thanh toán để có thông tin riêng tư trong địa chỉ web — hộp tìm kiếm, form liên lạc, trang tài khoản, liên kết tài liệu, và email đặt lại mật khẩu đều thường xuyên đặt dữ liệu trong thanh địa chỉ. Và ngay cả không có dữ liệu cá nhân nào, rò rỉ đường dẫn trang nội bộ của bạn cho mọi trang bên ngoài mà khách truy cập nhấp qua trao cho đối thủ và scraper bản đồ miễn phí về trang của bạn. Bản sửa không tốn gì và năm phút, vì vậy có rất ít lý do để bỏ qua.

Bật điều này có làm hỏng trang hoặc analytics của tôi không?

Không. Đây là một trong các header an toàn — nó chỉ kiểm soát bao nhiêu chi tiết địa chỉ được chia sẻ với các trang khác, không phải liệu các liên kết có hoạt động không. Cài đặt được khuyến nghị vẫn gửi tên miền của bạn đến các trang bên ngoài, vì vậy analytics referral hợp lệ vẫn hoạt động; nó chỉ ngăn địa chỉ riêng tư đầy đủ đi cùng. Không cần thử nghiệm chỉ-theo-dõi và không có gì cần kiểm tra trên staging trước.

Đây là vấn đề luật quyền riêng tư hay chỉ là tốt để có?

Có thể là vấn đề tuân thủ thật. Quy tắc bảo vệ dữ liệu yêu cầu bạn thu thập và chia sẻ chỉ dữ liệu cá nhân tối thiểu cần thiết, và biết dữ liệu của bạn đến đâu. Nếu địa chỉ của bạn mang mã định danh cá nhân và bạn rò rỉ chúng cho nhà quảng cáo hoặc công ty analytics không có thỏa thuận, đó là thất bại tối thiểu hóa dữ liệu mà kiểm toán viên và cơ quan quản lý nhận ra. Với hầu hết doanh nghiệp header này là cách rẻ, cụ thể để đóng khoảng cách đó.

Điều này có ảnh hưởng điểm của chúng tôi không, hay chỉ là tư vấn?

Ảnh hưởng điểm của bạn. Kiểm tra Referrer-Policy được tính điểm và đáng đến 15 điểm trong danh mục Bảo mật Web. Header thiếu được đánh dấu nghiêm trọng trung bình. Lưu ý một bẫy: đặt header thành giá trị cho phép như 'unsafe-url' hoặc 'no-referrer-when-downgrade' điểm bằng không — giống như không có header — vì những giá trị đó vẫn rò rỉ địa chỉ đầy đủ. Để kiếm điểm bạn cần giá trị hạn chế đúng như 'strict-origin-when-cross-origin'.