Perplexity sử dụng crawler ẩn danh chưa được khai báo để lách chỉ dẫn cấm crawling
(blog.cloudflare.com)- Perplexity đã sử dụng một web crawler giấu danh tính để lách chỉ dẫn cấm crawling
- Đã ghi nhận các hành vi như bỏ qua tệp robots.txt và thay đổi liên tục IP, User Agent
- Trong thử nghiệm tên miền mới, đã xác nhận Perplexity vẫn truy cập nội dung website mặc dù có cài đặt cấm
- Cloudflare đã chỉnh sửa quy tắc quản lý và loại Perplexity khỏi bot đã được xác thực chính thức để ngăn chặn các hành vi như vậy
- Trái với các nhà vận hành bot thiện chí như OpenAI, hành vi ẩn danh của Perplexity đã bị chỉ trích
Tổng quan về hành vi dùng crawler lén của Perplexity
- Perplexity là engine trả lời dựa trên AI, ban đầu crawl website bằng User Agent đã được khai báo chính thức
- Tuy nhiên, khi đối mặt với việc chặn mạng, nó thay đổi User Agent để ẩn danh và cố gắng truy cập qua nhiều ASN (số hệ thống tự trị) khác nhau
- Trong quá trình này, đã phát hiện nhiều lần cố gắng truy cập mà bỏ qua hoặc thậm chí không gửi yêu cầu tới tệp robots.txt
Nguyên tắc tin cậy giữa website và crawler cùng hành vi gây vấn đề
- Internet đã phát triển trong nhiều thập kỷ dựa trên niềm tin, và crawler cũng phải tuân thủ các nguyên tắc minh bạch, rõ mục đích, và chuẩn hành vi
- Crawler phải tôn trọng hướng dẫn và ưu tiên của chủ sở hữu website; hành vi quan sát được của Perplexity lần này vi phạm các nguyên tắc đó
- Vì vậy, Cloudflare loại Perplexity khỏi danh sách bot đã được xác thực chính thức và áp dụng thêm quy tắc quản lý để phát hiện và chặn crawler lén
Trường hợp thử nghiệm và phát hiện
- Cloudflare tạo tên miền mới để thử nghiệm hành vi crawl của Perplexity
- Đặt robots.txt cấm tất cả truy cập tự động và thêm quy tắc WAF
- Mặc dù chặn User Agent và IP chính thức của Perplexity, việc thu thập nội dung website vẫn được xác nhận vẫn xảy ra với danh tính được giấu
- Perplexity thử truy cập nội dung bằng cả User Agent chính thức và User Agent lén, trong đó loại sau giả mạo trình duyệt thực tế (Chrome)
| Loại | Ví dụ User Agent | Yêu cầu mỗi ngày |
|---|---|---|
| Chính thức | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Perplexity-User/1.0; +https://perplexity.ai/perplexity-user) | 20.000.000~25.000.000 |
| Ẩn danh | Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 | 3.000.000~6.000.000 |
- Perplexity dùng nhiều IP và ASN không thuộc dải IP chính thức, đồng thời liên tục thay IP để né chính sách chặn
- Nhờ vậy, hoạt động này được nhận diện trên hàng chục nghìn domain và hàng triệu request, và Cloudflare nhận dạng crawler này bằng machine learning và tín hiệu mạng
Các trường hợp né qua của crawler lén và giới hạn
- Khi chặn crawler lén, Perplexity cố gắng cung cấp câu trả lời bằng nguồn bên ngoài như các website khác
- Tuy nhiên, đã quan sát thấy mức độ chi tiết của nội dung giảm đáng kể trong trường hợp này
Tiêu chuẩn cho nhà vận hành bot thiện chí và thực hành tốt của OpenAI
- Bot vận hành tốt cần có tính minh bạch, xác định rõ danh tính, công khai mục đích hoạt động, sử dụng bot riêng cho từng hoạt động, tuân thủ quy tắc của web master (như robots.txt)
- OpenAI cung cấp IP và User Agent chính thức cùng mục đích hoạt động của crawler một cách minh bạch, đồng thời tuân thủ chặt chẽ robots.txt
- Trong thử nghiệm thực tế, crawler ChatGPT dừng mọi lần thử crawl bổ sung khi phát hiện cấu hình disallow hoặc chặn mạng
- Cơ chế xác thực chuẩn hóa như Web Bot Auth cũng được áp dụng rất tích cực
Biện pháp bảo vệ và ứng phó
- Mọi lần crawling phát sinh từ User Agent chưa được báo cáo của Perplexity đều bị hệ thống quản lý bot của Cloudflare phát hiện và chặn
- Khách hàng đã bật quy tắc chặn bot hoặc quy tắc challenge hiện tại của Cloudflare đã nằm trong nhóm đã được bảo vệ
- Quy tắc quản trị nhằm chặn crawler lén được cung cấp cho toàn bộ khách hàng (kể cả khách hàng miễn phí)
- Sau khi công bố Content Independence Day, hơn 2,5 triệu website đã áp dụng chính sách cấm crawling của AI
- Song song với nỗ lực liên tục né chặn của các nhà vận hành bot, Cloudflare cũng không ngừng hoàn thiện hệ thống phản ứng và công nghệ
Nỗ lực chính sách và triển vọng tương lai
- Cloudflare đang tham gia tích cực cùng cộng đồng chuyên gia công nghệ và chính sách toàn cầu, trong đó có IETF, để thảo luận chuẩn hóa mở rộng robots.txt
- Hướng tới việc thiết lập quy tắc cho crawler đáng tin cậy, và tiếp tục nhấn mạnh tính minh bạch và tuân thủ pháp luật trong môi trường AI và crawler biến đổi nhanh
2 bình luận
Ủng hộ Perplexity
Ý kiến từ Hacker News
Tôi nghĩ rằng việc giải quyết vấn đề này rất khó.
Một số cửa hàng không muốn chào đón dịch vụ kiểu Instacart hay Postmates
Bạn đi mua sắm trực tiếp hay dùng điện thoại quét hết hàng để so sánh giá thì không quan trọng
Nhưng họ không cho phép dịch vụ bên thứ ba gửi nhân viên của mình để kiểm kê hàng hóa hoặc đến nhận hàng thay bạn sau khi đặt online
Lý do là rất nhiều: không muốn mất quyền kiểm soát cảm nhận chất lượng sản phẩm (đồ ăn có thể bị nguội, giá có thể tăng, hoặc bị thay thế sai món), muốn nhân viên phục vụ trực tiếp để xây dựng mối quan hệ với khách, hoặc chỉ đơn giản là phản đối mô hình giao hàng của bên thứ ba
Việc từ chối một doanh nghiệp không liên quan hoạt động trong cửa hàng offline của tôi là lựa chọn hợp lý
Tôi nghĩ lập luận đó cũng phải áp dụng cho dịch vụ kỹ thuật số
Đây là vấn đề về quy mô
Có lẽ bước tiếp theo mà bạn nói đến là
người dùng chạy bot nghiên cứu cá nhân để đi tìm câu trả lời trên vô số website và gửi yêu cầu nhanh hơn rất nhiều so với con người
Cần xác định nên chấp nhận đến đâu
Crawl cá nhân có ổn không? Hay khi bot thông minh hơn và dự đoán trước người dùng sắp hỏi gì, rồi luôn crawl thông tin mới thì sao?
Hay khi quy mô lớn hơn và bắt đầu crawl hàng loạt cho nhiều người dùng thì đó mới là vấn đề?
Tôi nghĩ nên phân biệt “crawler” và “fetcher” để tách bạch giữa scraping hàng loạt và agent hướng người dùng
Gần đây tôi tham gia phát triển công cụ phát hiện AI agent (xem: https://stytch.com/blog/introducing-is-agent/); tôi tin rằng website có giá trị thật khi có thể nhận diện AI agent và đưa ra cách truy cập có giới hạn
Ngược lại, crawler có thể mạo danh crawler có tiếng, phớt lờ robots.txt và gây hành vi xấu
Giải pháp chuẩn hiện nay là tra cứu reverse DNS của IP, nhưng điều này cũng gây phiền cho chủ website
Tôi nghĩ chặn toàn bộ truy cập bất thường sẽ hiệu quả hơn
Tôi đồng ý rằng mô hình quảng cáo có rất nhiều vấn đề
Nhưng web nơi AI tách nhà sản xuất nội dung khỏi người dùng không phải hướng tôi muốn thấy tương lai
Ví dụ: ai đó vận hành bản tin trả phí, công bố một phần miễn phí để thu hút khách quan tâm rồi chuyển một phần thành người dùng trả tiền
Người làm nội dung ấy mong đợi việc “xem nội dung + up-sell (kéo đăng ký)” phải xảy ra cùng nhau
Nếu AI crawler bỏ qua toàn bộ quy trình đó và chỉ lấy đi nội dung quan trọng, thì không còn lý do để đăng nội dung miễn phí lên web
Nếu AI crawler thắng, cuối cùng ai cũng thiệt
Trên thế giới vẫn có rất nhiều trang không bị ngập quảng cáo
Tìm kiếm truyền thống từng có thỏa thuận ngầm: “chúng tôi crawl trang của bạn để bạn giúp chúng tôi có traffic”
Crawler cho mô hình AI private model đã phá vỡ thỏa thuận đó
Họ tạo mô hình từ dữ liệu và trang bị chức năng QA, công ty vận hành LLM kiếm được doanh thu hàng tỷ từ tri thức lấy qua crawler, nhưng website gần như không nhận được gì
Ngay cả khi nói chỉ lấy để trả lời truy vấn người dùng, nhà cung cấp LLM vẫn lấy phần lớn lợi nhuận, còn tác giả nội dung thực tế không nhận được ngay cả lượt truy cập
Nếu cho rằng Perplexity bỏ qua robots.txt và chặn để lấy trang cho truy vấn người dùng là ổn, khó mà tin rằng dữ liệu đó không sẽ được dùng cho huấn luyện sau này hoặc crawl thêm
Tôi thấy thay đổi diễn ra rất nhanh thật thú vị
Web có thể tốt hơn khi tập trung vào cộng đồng nhỏ hơn hoặc theo thành viên (không nhất thiết theo nghĩa địa lý, mà theo nghĩa xã hội) thay vì “toàn cầu”
Việc nuôi dưỡng cộng đồng riêng rồi mời mọi người vào không gian riêng tư hơn có vẻ sẽ quan trọng hơn trong thời gian tới
Web mở kiểu cũ dường như sẽ thành không gian của máy móc
Trước đây chúng ta từng ghét “bubble (bong bóng, không gian riêng)”, nhưng bubble vốn dĩ hợp lý; miễn nó không riêng lẻ tuyệt đối thì vẫn có ý nghĩa
Khi web đầy nội dung máy móc và nội dung do máy móc tạo, cuối cùng con người sẽ lại học cách kết nối nhau
Về thí nghiệm hỏi Perplexity AI và thấy nó vẫn trả lời chi tiết nội dung của domain đã chặn,
tôi thấy bài này có kết luận mơ hồ như một bài PR chỉ trích một công ty cụ thể
Không rõ liệu Perplexity có crawl trực tiếp (quét toàn bộ trang theo hệ thống) hay chỉ lấy một lần theo yêu cầu người dùng
Phần lớn mọi người nghĩ hai việc này khác nhau, và cho rằng trường hợp sau dễ chấp nhận hơn nhiều so với trường hợp trước
Nó khiến tôi nhớ đến quảng cáo của Perplexity
Một lần nữa, Cloudflare được đặt vào vai trò “tốt” còn Perplexity thành “tệ”, nhưng Cloudflare gần đây cũng đang marketing kiểu “cứu web” rất mạnh
Lập luận quá nông, và cả hai bên đều bị nhìn như “cuộc chiến của các ông lớn”, nên kịch bản này có thể lại có lợi cho PR của Perplexity
Việc lấy trang thay cho người dùng về nguyên tắc có thể được chấp nhận, nhưng xét việc các công ty AI đã và đang coi nhẹ bản quyền cùng các quy tắc khác, tôi không thể loại trừ khả năng nội dung sẽ lại được lưu để dùng cho huấn luyện hoặc crawl thêm sau này
Trong đặc tả HTTP, sự phân biệt này cũng thể hiện gián tiếp
Ở khái niệm/tên gọi “user agent” có sự tách bạch khá rõ
Nếu AI cache hay lưu trữ toàn bộ kết quả để nhiều người cùng dùng thì cuối cùng nó chẳng khác gì scraper
Chỉ cần huấn luyện bằng dữ liệu cache cũng đã đủ
Nó đóng vai trung gian lấy nội dung quan trọng và còn thu được tín hiệu giá trị dữ liệu
Theo phản hồi mà Perplexity gửi cho TechCrunch
Bài viết của Cloudflare trên blog chỉ là “chiêu thức chiêu mộ bán hàng”
Hơn nữa, họ cho rằng ảnh chụp trong blog cho thấy “không có nội dung nào đã bị truy cập”
Họ cũng nói bot trong blog chỉ ra không phải của họ
Perplexity tự nó cũng đang chặn crawler
Dù giả mạo user agent của trình duyệt thì vẫn bị chặn như nhau
Có vẻ như họ đang áp dụng cơ chế phát hiện crawler khá tinh vi
Có người đã đặt câu hỏi này cho CEO rồi: https://x.com/AravSrinivas/status/1819610286036488625
Điều buồn cười là Perplexity cũng đang dùng Cloudflare
Tôi nghĩ crawler “stealth” sẽ luôn thắng
Dùng công cụ tự động hóa trình duyệt (W3C WebDriver2, Chrome DevTools Protocol) để làm scraper thì gần như không thể phát hiện được
Có thể bật captcha, nhưng developer có thể thiết kế luồng human-in-the-loop để trong giờ làm việc nhân viên call center xử lý trực tiếp
Cách “scrape dựa trên raster (ảnh màn hình)” đã từng xuất hiện trong testing game 15 năm trước, và kiểu này có thể khiến “cảnh sát internet” ngày nay rất bối rối
Tôi cho rằng internet cần hệ thống thanh toán vi mô (micro-payment)
Nếu crawler trả dù chỉ 1 cent cho mỗi trang, tôi sẽ chào đón crawl 24/7
Nếu tôi tự trả 1 cent để xem nội dung, tôi không cần chịu các quy tắc quảng cáo kỳ quái như clicklab
Truy cập miễn phí không phải lúc nào cũng phải khóa hoàn toàn (trên thực tế chắc chắn sẽ bị khóa, nhưng điều đó cũng có ý nghĩa)
Ví dụ, Reddit có thể thu phí cao nhưng hoàn tiền cho nội dung tốt để nâng chất lượng
Một hệ thống kiểu “nạp trước – rút ra – phạt” cũng khả thi: đặt cọc khi đăng ký, bị ban thì tịch thu, hoạt động bình thường thì hoàn lại. Mục tiêu là đơn giản hóa vận hành và nâng chất lượng nội dung
Ý tưởng này cần thiết vì internet đang ngày càng đầy rác
Ý tưởng khác: trả cho Google mỗi truy vấn 1 cent và có thể nhận lại tiền nếu kết quả không vừa ý
AI của Google đo mức độ hài lòng; nếu tìm kiếm không đạt, nó chỉ hiển thị kết quả phổ biến nhất đầy quảng cáo
Khi đó, người dùng sẽ chuyển chi phí sang engine tìm kiếm khác
Khi ai đó crawl bừa bãi đến mức đe dọa độ tin cậy của không gian công cộng, việc một tổ chức có uy tín như Cloudflare công khai lên án hành vi “scraping lừa đảo” là tích cực
Bản thân tranh luận này có thể châm ngòi cho nhiều cuộc nói chuyện mới cũng đã có ý nghĩa
Cuối cùng các bên chơi lớn cần quay lại thời kỳ mà search trước đây vẫn giữ được tối thiểu các “quy tắc”
Một search engine cá nhân tôi tự xây dựng cũng có thể làm được mức độ nào đó tương đương Perplexity
So với bạn bè, nó nhận được gần nửa mỗi bên
Engine có thể tải web page xuống cho mục đích nghiên cứu
Nhưng gặp captcha hoặc bị chặn thì dừng luôn
Trong khi đó, các công ty IT lớn nghĩ rằng nhờ có hàng tỷ vốn đầu tư mạo hiểm, họ có thể làm bất cứ thứ gì, và tôi rất giận dữ trước thái độ ấy
Có ý kiến cho rằng “với tính năng Cloudflare managed robots.txt hoặc quy tắc chặn AI crawler, hơn 2,5 triệu website đã chọn chặn toàn bộ việc học AI”
Nhưng thực tế là CEO của Cloudflare đã áp dụng tính năng này theo mặc định cho toàn bộ khách hàng
Với doanh nghiệp muốn AI recommend hoặc coi trọng traffic, họ nên tắt tùy chọn này để tránh thiệt hại tài chính
Nói “được bật theo mặc định” là dối trá
Tôi tự kiểm tra các site của Cloudflare và thấy khi chưa cấu hình gì, tính năng này không bật mặc định
Nếu không có robots.txt thì chỉ thấy dòng “Cân nhắc bật Cloudflare managed robots.txt”
Nếu đã có file sẵn thì nó giữ nguyên và cảnh báo lưu lượng AI cũng đang tắt bằng tay
Về nhận định “muốn AI recommend thì phải tắt setting”
Content marketing, SEO gamified và quảng cáo bùng phát đã làm xấu đi chất lượng search của Google rất nhiều
Trong khi đó, LLM (mô hình ngôn ngữ lớn) hiện chưa thấy “game hóa” rõ rệt
Có ngày LLM cũng có thể trở thành search méo mó như vậy, nhưng tôi hy vọng OpenAI hay Anthropic sẽ nhận ra việc chất lượng search giảm sẽ là một trong nguyên nhân khiến traffic Google tụt
“Khẳng định bật mặc định” là hoàn toàn sai
Thực tế là ngay cả khi không cấu hình gì, nó vẫn không tự động “đăng ký” vào tính năng này
Thậm chí lúc mà lập luận ấy đúng thì giờ không còn đúng nữa; còn từ đầu nó đã sai rồi