1 điểm bởi GN⁺ 2026-06-01 | 2 bình luận | Chia sẻ qua WhatsApp
  • Xác minh thiết bị “Verify you're human” của Cloudflare Turnstile đã lặp vô hạn trên các trình duyệt dựa trên WebKitGTK từ khoảng một tuần trước
  • Nguyên nhân trực tiếp khiến nhiều website bị chặn truy cập dường như là hành vi Cloudflare cố lấy dấu vân tay thiết bị thông qua WebGL
  • Thông báo của Turnstile cho biết họ dùng thu thập dấu vân tay trình duyệt để xác minh người dùng là con người, và các công cụ chặn hoặc ngẫu nhiên hóa có thể khiến trình duyệt trông giống bot
  • WebKit đã chặn loại chức năng này suốt nhiều năm, và dường như đây không phải là một tùy chọn quyền riêng tư mà người dùng có thể dễ dàng tắt
  • Trong khi Safari được cho là có ngoại lệ, toàn bộ các trình duyệt WebKitGTK đều bị chặn, và người dùng bật bảo vệ quyền riêng tư trên Firefox cũng có thể bị ảnh hưởng

Turnstile xác minh lặp lại trên WebKitGTK

  • Xác minh thiết bị “Verify you're human” của Cloudflare Turnstile đã lặp vô hạn trên các trình duyệt dựa trên WebKitGTK từ khoảng một tuần trước, khiến việc truy cập nhiều website bị chặn
  • Nguyên nhân của việc chặn truy cập dường như là hành vi Cloudflare cố lấy dấu vân tay thiết bị thông qua WebGL
  • Dòng thông báo của Turnstile cho biết họ dùng thu thập dấu vân tay trình duyệt để xác minh người dùng là con người
  • Các công cụ quyền riêng tư chặn hoặc ngẫu nhiên hóa việc lấy dấu vân tay có thể khiến trình duyệt trông như bot đang cố che giấu danh tính
  • WebKit đã chặn loại chức năng này suốt nhiều năm, và dường như đây không phải là một tính năng quyền riêng tư có thể dễ dàng vô hiệu hóa
  • Trong khi Cloudflare được cho là đã tạo ngoại lệ cho Safari, toàn bộ các trình duyệt WebKitGTK lại rơi vào trạng thái bị chặn

Cơ chế bảo vệ liên quan trên Firefox

2 bình luận

 
GN⁺ 2026-06-02
Ý kiến trên Lobste.rs
  • Có vẻ bài viết đã trộn lẫn nhiều thứ liên quan đến Firefox. Với tư cách là người từng ở trong nhóm trực tiếp làm việc này, tôi có thể nói rằng cơ chế phòng vệ trước fingerprinting của Firefox hoạt động theo nhiều cách
    Thứ nhất, Firefox hạn chế thông tin trong chuỗi WebGL vendor/renderer, bao gồm cả chuỗi gọi là “unmasked”. Mã ví dụ có thể tự kiểm tra đã được Fatih đăng ở comment 14. Nói rằng họ đã làm hỏng gì đó là hoàn toàn sai
    Thứ hai, Firefox cũng ngẫu nhiên hóa đầu ra canvas. Nếu gọi toDataURL() trên cùng một canvas, giá trị trả về sẽ hơi khác nhau giữa các phiên. Ví dụ có thể thử trong chế độ riêng tư/chế độ thường hoặc giữa các container tabs khác nhau
    Thứ ba, các tính năng trên cùng với các cơ chế chống fingerprinting gần đây khác được xây dựng dựa trên phân tích thực nghiệm để vừa hoạt động hiệu quả vừa không làm hỏng web. Phần lớn được bật mặc định; nếu muốn mạnh hơn thì có thể chuyển “Enhanced Tracking Protection” sang strict trong phần cài đặt
    Thứ tư, chế độ resistFingerprinting không có trong phần cài đặt mà chỉ truy cập được qua about:config, vì nó được biết là có thể làm hỏng web. Nó vẫn được giữ lại cho Tor Browser, một nhánh của Firefox, nhưng cá nhân tôi thấy các biện pháp bảo vệ trong Enhanced Tracking Protection tốt hơn nhiều

  • Không phải tôi đang bênh vực fingerprinting, nhưng vì đây là một phần công việc hiện tại nên tôi quan tâm đến các công cụ chặn bot
    Có vẻ mục tiêu của Cloudflare với Turnstile là tạo ra một widget chống bot mà con người không cần giải captcha. Có lẽ họ làm điều đó bằng cách quan sát hành vi trên nhiều site thông qua fingerprinting rồi cho đa số người dùng đi qua; tôi muốn biết hiểu như vậy có đúng không
    Liệu có thể tạo một widget không cần giải captcha mà không dùng fingerprinting không? Ngay từ đầu điều đó có khả thi không? Tôi cũng đã nghe nói việc vượt Turnstile không quá khó :tm:. Có phải mọi widget chặn bot cuối cùng đều chỉ là bảo mật dựa trên sự mơ hồ?

    • Tôi từng làm trong lĩnh vực này, nhưng không phát biểu thay cho công ty cũ. Fingerprinting được dùng để liên kết lưu lượng của cùng một tác nhân trên cùng một site qua nhiều IP
      Việc người đó đi qua nhiều site không quá quan trọng; mấu chốt là phát hiện họ truy cập lặp lại vào cùng một site
      Nếu muốn tạo widget không cần captcha mà không dùng fingerprinting thì attestation phần cứng cũng có thể hoạt động. Nhưng ai cũng ghét nó. Apple có cung cấp attestation phần cứng, và vì Cloudflare dùng nó trên Safari nên Safari vẫn có thể vượt qua dù có ngẫu nhiên hóa canvas. Không phải như bài blog kia nói, rằng Cloudflare dành ngoại lệ cho Safari
      Bạn cũng có thể yêu cầu proof of work, nhưng chỉ khi chấp nhận loại bỏ nhiều người dùng web chỉ có điện thoại Android giá rẻ, và khi giá trị của từng hành vi bot đủ thấp để người vận hành bot không có động lực thực hiện proof of work. Những điều kiện này đôi khi đúng, nhưng không phù hợp với các nơi như trang mua sắm hay ngân hàng
      Ngoài ra thì không có giải pháp tốt nào. Tôi không rõ lắm về Turnstile, nhưng sản phẩm của công ty tôi từng làm việc ở đó chắc chắn rất khó bị vượt qua ở quy mô lớn. Tuy nhiên khi không ở quy mô lớn thì chúng tôi cũng không cố tình làm cho việc vượt qua trở nên khó, và tôi sẽ không ngạc nhiên nếu Cloudflare cũng đã chọn như vậy
      Mục tiêu của mọi widget chặn bot không phải là khiến bot trở nên bất khả thi, mà là khiến việc dùng bot tấn công website trở nên bất khả thi về mặt kinh tế. Vì vậy đây là một trò chơi khác với an ninh mạng kiểu khác, và sự mơ hồ hoạt động khá hiệu quả. Mục tiêu là theo thời gian buộc đối phương phải tiếp tục tốn thêm chi phí
    • Fingerprinting canvas/webgl thực tế là bài toán đã được giải đối với dân web scraper. Nó thậm chí còn xuất hiện như câu hỏi phỏng vấn cho các vị trí liên quan đến web scraping
      Cách giải phổ biến là trích xuất các lệnh vẽ. Có thể dùng trình duyệt đã chỉnh sửa để dump các lệnh, hoặc lấy chúng bằng cách deobfuscate script
      Sau đó chỉ cần đưa script canvas/webgl đã trích xuất lên site của mình để tạo fingerprint có thể tái sử dụng cho bot từ khách truy cập
      Cách này khá vững chắc. Các script fingerprinting kiểu này hầu như không thay đổi, vì nếu thay đổi thì cơ sở dữ liệu ánh xạ canvas → GPU/vendor/browser/OS sẽ bị vô hiệu hóa
      Tóm lại đây lại là một ví dụ khác cho thấy người dùng bình thường chỉ bị làm phiền thêm, còn các web scraper nghiêm túc thì đã biết nhiều chiến lược vượt qua rồi
 
GN⁺ 2026-06-01
Ý kiến trên Hacker News
  • Cloudflare được biết là dùng lấy dấu vân tay trình duyệt để phát hiện scraper. Ví dụ, họ đối chiếu dấu vân tay JA3 với user agent để chặn những thứ như cURL và cho phép OkHttp (client Android), nhưng có thể dễ dàng ngụy trang bằng các gói như CycleTLS [1]
    Tôi không muốn bênh vực việc chặn một phần lớn Internet dưới danh nghĩa “chống bot”, nhưng nếu không dùng bằng chứng công việc (PoW) thì lấy dấu vân tay có thể là một cách thực tế, và hệ quả là quyền riêng tư của tất cả những người liên quan bị phá hủy hoàn toàn
    Cromite, một bản fork Chromium cho Android chú trọng quyền riêng tư, liên tục gặp vấn đề với Cloudflare Turnstile [2], vì Cloudflare lấy dấu vân tay theo nhiều cách để cho qua thử thách
    Muốn giải quyết thì phải tham gia chương trình Cloudflare Browser Developer, nhưng cần ký NDA, và việc người quản lý dự án từ chối có vẻ là hoàn toàn chính đáng
    Nếu muốn thấy Cloudflare đào sâu việc lấy dấu vân tay trình duyệt đến mức nào, hãy xem trong issue [2] cần tắt những flag nào để vượt qua thử thách. Ít nhất tôi nghĩ Cloudflare có thể linh hoạt đến mức thay thế bằng bằng chứng công việc thay vì просто chặn người dùng khỏi việc gửi biểu mẫu hay truy cập website
    [1]: https://github.com/Danny-Dasilva/CycleTLS
    [2]: https://github.com/uazo/cromite/issues/2365

    • “Chống bot” của Cloudflare không chỉ chặn một phần lớn Internet mà còn chặn cả rất nhiều người. Tôi rất lo ngại về xu hướng vô tư thuê ngoài quyền kiểm soát truy cập website cho một công ty duy nhất
    • Chống bot dựa trên lấy dấu vân tay gần như là một ảo tưởng. Tín hiệu phía client chỉ cần khá hơn mức trung bình là có thể giả mạo được, và lấy dấu vân tay chỉ là công cụ tập trung thị trường phục vụ ngành quảng cáo
      Gán uy tín cho IP dân dụng và dải IP thương mại cũng có thể là một cách khác để đạt kết quả mong muốn. Điều đó sẽ khiến các nhà cung cấp cẩn trọng hơn nhiều với việc lạm dụng IP, nhưng khi ấy các hoạt động DDoS của cả bên tấn công lẫn phòng thủ có thể cùng sụp đổ
      Trớ trêu thay, có khá nhiều công ty vừa xây bot của mình vừa đầu tư vào cách chặn bot của công ty khác
    • Cơ chế chống scraping của Cloudflare chỉ cỡ ổ khóa 5 đô nên toàn bộ đều là công cốc. Có thể chặn được mấy đứa tuổi teen rảnh rỗi, nhưng còn không chặn nổi trộm nghiệp dư, và nếu ai đó muốn cào dữ liệu công khai thì cuối cùng họ vẫn sẽ cào được. Không có cách nào ngăn hẳn
    • Lấy dấu vân tay để “chống bot” không thể phân biệt được với lấy dấu vân tay để giám sát đại trà
    • Tôi muốn nghe giải thích thêm về chuyện bằng chứng công việc là cơn ác mộng sinh thái. Tính sơ thì có vẻ không phải vấn đề lớn
      Tải 5W trong 2 giây là 0.002Wh, và vì điện thoại thông minh cũng phải vượt qua được nên không thể bắt làm PoW kéo dài hàng chục giây. Kể cả kiểm tra 8 tỷ lần mỗi ngày trong 1 năm thì cũng chỉ là 8GWh
  • Có lý do khiến privacy.resistfingerprinting không được bật ngay cả khi chọn “Strict” “Enhanced Privacy Protection”. Tôi đã bật nó và dùng lâu rồi, nhưng website bị vỡ kỳ quặc nên cứ phải tắt đi và thêm ngoại lệ
    Xử lý múi giờ của một số trang bị lỗi làm tôi suýt lỡ hẹn vài lần. Nếu muốn báo cho người dùng biết không phải Firefox bị hỏng, có lẽ phải có một banner thường trực kiểu như “nếu website bị vỡ, xuất hiện glitch lạ, giờ máy tính bị sai, font kỳ quặc, hoặc video đôi lúc không phát, hãy bấm vào đây để tắt bảo vệ dấu vân tay”
    Điều thú vị là Turnstile bị lỗi với resistfingerprinting nhưng lại hoạt động với fingerprintingProtection. Có vẻ cái sau đã tính đến kiểu tình huống rác rưởi này

    • Là lý do để không bật mặc định thì có thể chấp nhận được, nhưng là lý do để không bật cả trong thiết lập Strict thì không ổn
      Ở thiết lập Strict, tôi phần nào kỳ vọng website có thể bị vỡ, nhưng không kỳ vọng các đường theo dõi vẫn còn mở toang. Cảm giác khá lừa dối
  • Tôi đang duy trì một trình duyệt thiểu số[0], và từ vài tuần trước nhiều người dùng đã gặp vấn đề này[1]. Hiện tôi không nghĩ đây là lỗi trình duyệt, nhưng dĩ nhiên vẫn có thể có bug liên quan; sẽ tốt hơn nếu có thêm nhiều người xem xét, nên tôi cần ý tưởng và hỗ trợ để cải thiện hoặc giảm nhẹ tình hình
    [0]: https://konform-browser.codeberg.page/
    [1]: Tôi không rõ là đa số hay tất cả. Tôi đang dựa vào báo cáo người dùng và tự kiểm thử vì không có telemetry

  • “Nếu bị phát hiện là đang ngụy trang thì có nghĩa là bạn ngụy trang chưa đủ gắt.”
    Cuộc chiến chống bot ngu ngốc này đang dẫn đến sự suy tàn của Internet, và cuối cùng sẽ biến nó thành thêm một khu vườn đóng kín khác, nơi chỉ các tác nhân thù địch với người dùng nhưng “được phê duyệt” mới được phép. Đừng mắc bẫy mấy lời nhảm về “AI scraper”. Đó chỉ là công cụ để nhào nặn sự đồng thuận

    • Nếu bot đang nện server thì cứ giới hạn tốc độ. Nếu là nội dung bạn không muốn người khác truy cập thì đừng phục vụ nó qua web server
  • Google và Cloudflare có thỏa thuận gì đó để khiến trình duyệt không phải Chrome khó dùng hơn không? Áp lực phải dùng Chrome ngày càng tăng, còn khả năng chặn quảng cáo trên Chrome thì ngày càng giảm

    • Rất có thể đây chỉ là một trong những hệ quả tự nhiên vì Chrome là trình duyệt phổ biến nhất trên web. Phần lớn lưu lượng hợp lệ sẽ đến từ Chrome
    • Khi tôi rời Cloudflare 5 năm trước, trình duyệt duy nhất được phê duyệt dùng nội bộ là Chrome
    • Chưa dừng ở đó: https://blog.cloudflare.com/eliminating-captchas-on-iphones-...
  • Nếu bạn cố che giấu điều gì đó thì tự động sẽ bị xếp vào nhóm “tác nhân có lý do để che giấu”
    Nói cho rõ thì đó chính là vấn đề cốt lõi. Khi quá nhiều phần của Internet đi qua Cloudflare, cần phải có đủ tín hiệu thay thế để chứng minh bạn không phải tác nhân xấu, mạnh hơn là chỉ dựa vào một tín hiệu cụ thể nào đó
    Tuy vậy, vì số người dùng cùng kiểu cấu hình này trong tập người dùng gần như không đáng kể, có thể sẽ mất rất lâu mới có giải pháp thực sự

  • Họ nói “có vẻ bạn đang cố che giấu danh tính”, nhưng ngay từ đầu họ đã không có quyền đòi hỏi điều đó

    • Theo cùng logic ấy thì bạn cũng không có quyền xem nội dung website
  • Tôi không biết về privacy.resistfingerprinting, nhưng từ giờ tôi định cứ để tất cả Cloudflare Turnstile đều thất bại

    • Ngay cả khi bật nó thì Turnstile vẫn hoạt động tốt
  • Thiết lập privacy.resistfingerprinting là dành cho Tor Browser

    • Nó được bật mặc định trên Tor Browser, và tôi cũng không chắc có tắt được không
      Nó cũng được bật mặc định trên Konform Browser và Mullvad Browser, vốn mang sang rất nhiều bản vá về quyền riêng tư và bảo mật của Tor Browser
  • Tôi thích câu châm ngôn trong lĩnh vực tội phạm rằng nếu X% dân số đang vi phạm một luật nào đó thì luật đó nên bị bãi bỏ. Ma túy giải trí là ví dụ rõ ràng
    Nếu việc xử lý canvas ngẫu nhiên bị coi là hành vi bot, mà giờ tất cả người dùng Firefox đều làm vậy, thì có lẽ Cloudflare cũng nên просто “hợp pháp hóa” nó chăng