Khi nhà quảng cáo quyết định chống bot, câu hỏi đầu tiên thường mang tính kỹ thuật: chặn theo IP hay gắn script lên trang? Đây là hai cách khác nhau để nhìn một lượt truy cập. Chặn IP đánh giá yêu cầu đến từ đâu. Kiểm tra JavaScript đánh giá chương trình nào đã gửi nó. Mỗi cách có điểm mù riêng, và chính vì vậy một hệ thống bảo vệ nghiêm túc không chọn một trong hai mà kết hợp cả hai.
Dưới đây là cách mỗi phương pháp hoạt động, chúng bắt tốt cái gì, sai ở đâu và làm sao cho chúng phối hợp mà không làm chậm trang.
Chặn IP hoạt động thế nào
Máy chủ nhận yêu cầu và biết về nó khá ít: địa chỉ IP, các header của trình duyệt, địa chỉ trang mà người dùng đến từ đó. Nhưng chỉ từ IP đã có thể biết nhiều điều hữu ích:
- mạng thuộc về ai — nhà mạng gia đình, nhà mạng di động, hosting, cloud (theo số hiệu hệ thống tự trị, ASN);
- quốc gia và thành phố — đủ chính xác cho bộ lọc geo;
- đánh dấu trong cơ sở dữ liệu — VPN đã biết, proxy, Tor, địa chỉ từ bẫy spam;
- lịch sử — địa chỉ này đã đến bao nhiêu lần và kết cục ra sao.
Quyết định được đưa ra trước khi trang được trả về cho khách. Đây là ưu điểm lớn nhất: không tốn chút tốc độ nào và hiệu quả cả với những chương trình không biết chạy script.
Chặn IP bắt được gì
- Bot máy chủ. Phần lớn bot rẻ tiền, công cụ crawl và máy quét chạy trong datacenter. Chặn theo ASN hosting loại chúng gần như không sai. Chi tiết trong bài VPN, proxy và IP datacenter.
- VPN đã biết và proxy máy chủ. Địa chỉ của chúng thường xuyên được đưa vào cơ sở dữ liệu.
- Địa chỉ lặp lại. Giới hạn số click từ một IP và danh sách đen IP loại bỏ khách truy cập dai dẳng và đối thủ click từ văn phòng.
- Geo lạ. Click từ một quốc gia bạn không nhắm tới gần như chắc chắn không phải người mua.
Điểm yếu của chặn IP
- Proxy dân cư và proxy di động. Bot ra internet qua địa chỉ của một thuê bao gia đình hoặc SIM của nhà mạng. Với bộ lọc IP, đó là một người bình thường. Trường hợp này có bài riêng: proxy dân cư và proxy di động.
- Địa chỉ dùng chung. Sau một IP di động có hàng trăm thuê bao, sau IP văn phòng có hàng chục nhân viên. Chặn địa chỉ như vậy là chặn cả người thật.
- Xoay vòng IP. Bot đổi địa chỉ sau mỗi click sẽ vượt qua giới hạn tần suất và danh sách đen.
- Cơ sở dữ liệu cập nhật chậm. Địa chỉ mới vào cơ sở dữ liệu sau vài giờ hoặc vài ngày — đủ để nó làm xong việc.
- Không nhìn được bên trong. IP không cho biết đó là trình duyệt hay script, có màn hình hay không, chuột có di chuyển hay không.
Kiểm tra JavaScript hoạt động thế nào
Trang trả cho khách một script nhỏ. Script chạy trong trình duyệt và thu thập những gì chỉ nhìn thấy được từ bên trong:
- dấu hiệu tự động hóa — cờ
webdriver, dấu vết của công cụ điều khiển trình duyệt, những đặc điểm riêng của chế độ headless; - fingerprint thiết bị — màn hình, card đồ họa, font chữ, danh sách tính năng trình duyệt hỗ trợ;
- cài đặt hệ thống — múi giờ, ngôn ngữ, bố cục bàn phím;
- tính nhất quán — những gì header
User-Agentkhai báo có khớp với khả năng thực tế của trình duyệt hay không; - hành vi — chuyển động chuột và ngón tay, cuộn trang, thời gian tới thao tác đầu tiên.
Script gửi kết quả về máy chủ, máy chủ đưa ra quyết định. Fingerprint được tạo ra thế nào và bị làm giả ở đâu có trong bài trình duyệt headless và fingerprint trình duyệt.
Kiểm tra JavaScript bắt được gì
- Chương trình không có trình duyệt. Công cụ crawl và bot đơn giản tải trang nhưng không chạy script sẽ không trả về phản hồi nào. Đây là dấu hiệu mạnh.
- Trình duyệt headless và tự động hóa. Ngay cả trên IP dân cư, bot chạy trên trình duyệt bị điều khiển vẫn để lại dấu vết.
- Thiết bị giả mạo. Một chiếc "iPhone" có card đồ họa máy chủ và màn hình 1920×1080 tự lộ ra vì mâu thuẫn.
- Mạng và hệ thống không khớp. IP ở Đức nhưng múi giờ và ngôn ngữ lại ở châu Á. Mạng không thấy điều này, script thì thấy.
- Hành vi máy móc. Chuyển động thẳng tắp, rời trang ngay lập tức, click mà trước đó không có một chuyển động nào.
Điểm yếu của kiểm tra JavaScript
- Thời gian. Script phải được tải về, chạy xong và chờ máy chủ phản hồi. Đó là độ trễ mà chặn IP không có.
- Không phải lượt truy cập nào cũng chạy nó. Trình duyệt nhúng của mạng xã hội đôi khi tải trang ở chế độ nền và đóng băng bộ đếm thời gian; điện thoại cũ chạy script chậm; một số người rời đi trước khi kiểm tra xong.
- Có thể làm giả. Dữ liệu đến từ phía client, nghĩa là bot cao cấp có thể thay đổi nó. Trình duyệt antidetect sinh ra chính là để làm việc này.
- Báo động nhầm trên thiết bị lạ. WebView trong ứng dụng, trình duyệt tăng cường quyền riêng tư, tiện ích chặn fingerprint — tất cả trông giống giả mạo, dù trước màn hình là người thật.
- Phụ thuộc vào nơi cài đặt. Script chỉ hoạt động ở nơi nó được gắn. Nếu link dẫn tới trang không có script thì sẽ không có kiểm tra.
So sánh hai cách
| Chặn IP | Kiểm tra JavaScript | |
|---|---|---|
| Khi nào quyết định | trước khi trả trang | sau khi script tải xong |
| Ảnh hưởng tới tốc độ | gần như không | vài phần mười giây |
| Bot máy chủ | bắt rất tốt | bắt được, nhưng muộn hơn và tốn hơn |
| Bot trên IP dân cư và di động | gần như không thấy | thấy qua trình duyệt và hành vi |
| Chương trình không có JavaScript | chỉ bắt khi địa chỉ là máy chủ | bắt nhờ không có phản hồi |
| Làm giả | proxy thay địa chỉ | trình duyệt antidetect thay dữ liệu |
| Rủi ro sai chính | địa chỉ dùng chung, chặn diện rộng | WebView, trình duyệt riêng tư, điện thoại chậm |
Bảng cho thấy rõ điều quan trọng nhất: điểm yếu của hai cách gần như không trùng nhau. Cái mạng không thấy thì trình duyệt thấy, và ngược lại.
Vì sao nên kết hợp
Nếu chỉ dùng chặn IP, toàn bộ gian lận trên IP dân cư và IP di động sẽ lọt qua bộ lọc — mà đó lại là phần đắt nhất: click trông như người thật và bị tính đủ tiền. Nếu chỉ dùng script, mọi bot máy chủ đều nhận được trang, tải script và làm nặng máy chủ, còn bot đơn giản không chạy kiểm tra sẽ không phân biệt được với người không đợi trang tải xong.
Một sơ đồ hiệu quả trông như sau:
- Mạng là lớp thứ nhất. Datacenter, bot đã biết, địa chỉ trong danh sách đen và geo lạ bị loại thẳng tay. Cách này rẻ, nhanh và gần như không sai.
- Trình duyệt là lớp thứ hai. Mọi thứ đã qua lớp mạng đều được script kiểm tra: tự động hóa, fingerprint, múi giờ và ngôn ngữ, hành vi.
- Điểm tin cậy thay cho lệnh cấm. Các tín hiệu mềm — đánh dấu proxy, IP di động, múi giờ không khớp, thiếu click ID — không tự chặn lượt truy cập mà được cộng dồn. Quyết định dựa trên tổng điểm.
- Thống kê theo nguồn là góc nhìn thứ ba. Kể cả kiểm tra tốt nhất cho từng lượt cũng không thay được cái nhìn trên toàn bộ nguồn: tỷ lệ lượt đáng ngờ, chuyển đổi, approve. Chính nhờ vậy mà thấy được click từ trang trại và gian lận quảng cáo có hệ thống.
Nhờ đó các sai số nghiêng về phía có lợi cho nhà quảng cáo: người thật dùng VPN không bị loại vì một dấu hiệu, còn bot trên IP gia đình không lọt qua chỉ vì địa chỉ sạch.
Ảnh hưởng tới tốc độ trang
Tốc độ không chỉ là chuyện tiện lợi: mỗi giây tải thêm đều làm giảm chuyển đổi, và một hệ thống bảo vệ làm người mua bỏ đi còn đắt hơn cả bot. Có thể làm gì:
- Xử lý phần mạng từ trước. Trong lúc trình duyệt tải script, máy chủ đã có thể kiểm tra IP, ASN và cơ sở dữ liệu. Khi script gửi dữ liệu về, một nửa quyết định đã sẵn sàng.
- Script nhỏ và một kết nối. Càng ít yêu cầu và máy chủ càng gần khách, thời gian chờ càng ngắn. Script nén và tái sử dụng kết nối tiết kiệm hàng chục mili giây trên mạng di động.
- Đừng chờ hành vi ở nơi không cần. Kiểm tra chuyển động chuột đòi hỏi khách phải làm gì đó trên trang. Chỉ bật nó cho các nguồn cần siết chặt, không bật cho toàn bộ traffic.
- Loại bot máy chủ trước khi trả script. Nếu bot đã bị loại ở lớp mạng thì không cần gửi script cho nó — vừa tiết kiệm tài nguyên máy chủ, vừa giúp thống kê sạch hơn.
- Đo lường. Hãy nhìn thời gian từ click tới khi trang hiển thị trên lượt truy cập thật, chứ không phải số đo phòng thí nghiệm trên máy tính mạnh.
Kết luận về tốc độ: nếu triển khai hợp lý, kiểm tra kết hợp chỉ cộng thêm vài phần của một giây vào thời gian tải. Con số này nhỏ hơn rõ rệt so với phần mất vào ảnh nặng và bộ đếm bên thứ ba — và rẻ hơn rất nhiều so với tiền trả cho click của bot.
Ví dụ: ba lượt truy cập qua hai lớp
Để thấy hai cách bổ sung cho nhau thế nào, hãy xem ba click vào cùng một chiến dịch nhắm tới Đức.
Lượt A. Địa chỉ của một hosting đám mây ở Frankfurt, header trình duyệt là Chrome mới trên Windows. Lớp mạng loại lượt này ngay: mạng hosting trong traffic quảng cáo là máy chủ, không phải người mua. Thậm chí không cần đến script, trang không được trả về, máy chủ không tốn tài nguyên.
Lượt B. Địa chỉ của nhà mạng gia đình ở Munich, sạch trong cơ sở dữ liệu, click ID đầy đủ. Về mạng thì không có gì để bắt lỗi. Script báo về: cờ tự động hóa đang bật, card đồ họa là phần mềm, múi giờ America/New_York, không có chuyển động chuột nào trước khi click. Chặn IP sẽ cho lượt này qua và bạn sẽ trả tiền cho nó như cho người thật. Lớp trình duyệt chặn nó lại.
Lượt C. IP di động của một nhà mạng Đức, được đánh dấu là địa chỉ dùng chung, trình duyệt nhúng của mạng xã hội, múi giờ Europe/Berlin, ngôn ngữ tiếng Đức. Script chạy trễ — ứng dụng tải trang ở chế độ nền. Nếu bộ lọc chặn IP di động hoặc đòi script phản hồi tức thì, người mua này đã bị mất. Điểm tin cậy thấy các dấu hiệu khớp nhau và cho lượt này qua.
Trong ví dụ này, mỗi lớp nếu đứng riêng đều sai ít nhất một lần: chỉ có lớp mạng thì lọt lượt B, chỉ có script cứng nhắc không có điểm tin cậy thì có nguy cơ chặn nhầm lượt C. Kết hợp lại, cả ba lượt đều được phân loại đúng. Trên traffic thật cũng vậy: phần lớn rác bị lớp mạng rẻ tiền gạt đi, lớp trình duyệt gom nốt những gì giả dạng người thật, còn tổng các dấu hiệu bảo đảm không từ chối thừa.
Khi nào kiểm tra là không cần hoặc có hại
- Trang không nhận traffic trả phí. Nếu không có quảng cáo dẫn tới trang, kiểm tra trình duyệt nghiêm ngặt thường gây hại nhiều hơn có lợi.
- Nguồn gần như toàn bộ đến từ trình duyệt nhúng. Ở đó nên nới lỏng yêu cầu chạy script và dựa vào điểm tin cậy.
- Robot tìm kiếm trên website chính. Nên bảo vệ landing page của chiến dịch, chứ không phải toàn bộ website có traffic SEO. Cách chọn giải pháp có trong bài antibot cho website.
ArtisanClo làm việc này thế nào
ArtisanClo dùng cả hai lớp: kiểm tra mạng loại bỏ traffic từ datacenter, VPN và proxy, còn kiểm tra trình duyệt bắt tự động hóa và thiết bị giả mạo trên những địa chỉ trông sạch về mặt mạng. Mỗi click trong nhật ký đều có mã lý do của quyết định — nhìn là biết lớp mạng hay lớp trình duyệt đã kích hoạt. Tracker tích hợp tính chi phí, chuyển đổi, lợi nhuận và ROI theo chiến dịch, nên thấy rõ bao nhiêu tiền đã đổ vào traffic rác và nguồn nào mang nó tới. Mọi kiểm tra được liệt kê ở trang tính năng.
Tóm tắt
Chặn IP và kiểm tra JavaScript trả lời hai câu hỏi khác nhau: lượt truy cập đến từ đâu và chương trình nào gửi nó. Cách thứ nhất nhanh, rẻ và đáng tin trước bot máy chủ, nhưng không thấy proxy trên IP gia đình và IP di động. Cách thứ hai nhìn trình duyệt từ bên trong, nhưng tốn thời gian, bị bot cao cấp làm giả và sai với thiết bị lạ. Điểm yếu của chúng gần như không trùng nhau, nên mạng được đặt làm lớp thứ nhất, trình duyệt làm lớp thứ hai, các dấu hiệu mềm cộng vào điểm tin cậy, còn kết quả được kiểm chứng bằng thống kê theo nguồn. Cách tính bot lọt lưới tốn của bạn bao nhiêu có trong bài ngân sách mất vào bot là bao nhiêu.

