2009-01-16 17 views
8

Tôi muốn ngăn chặn tự động html cạo từ một trong các trang web của chúng tôi trong khi không ảnh hưởng đến spidering hợp pháp (googlebot, vv). Có cái gì đó đã tồn tại để thực hiện điều này? Tôi thậm chí có sử dụng thuật ngữ chính xác không?Làm thế nào để ngăn chặn hoạt động spidering trái phép

EDIT: Tôi chủ yếu tìm cách ngăn chặn những người sẽ làm điều này một cách độc hại. I E. họ sẽ không tuân theo robots.txt

EDIT2: Điều gì ngăn cản việc sử dụng theo "tỷ lệ sử dụng" ... tức là captcha để tiếp tục duyệt nếu phát hiện tự động và lưu lượng truy cập không phải là hợp pháp (google , yahoo, msn, v.v.) IP.

Trả lời

8

Điều này rất khó nếu không thể thực hiện được. Nhiều trình thu thập thông tin/trình thu thập dữ liệu "lừa đảo" không tự xác định thông qua chuỗi tác nhân người dùng, do đó rất khó để xác định chúng. Bạn có thể thử chặn chúng qua địa chỉ IP của chúng, nhưng rất khó để theo kịp với việc thêm các địa chỉ IP mới vào danh sách chặn của bạn. Cũng có thể chặn người dùng hợp pháp nếu địa chỉ IP được sử dụng vì proxy khiến nhiều khách hàng khác nhau xuất hiện dưới dạng một địa chỉ IP duy nhất.

Sự cố khi sử dụng robots.txt trong trường hợp này là con nhện chỉ có thể chọn bỏ qua nó.

CHỈNH SỬA: Hạn chế tỷ lệ là một khả năng, nhưng nó cũng gặp một số vấn đề tương tự như xác định (và theo dõi) các đại lý/IP người dùng "tốt" và "xấu". Trong hệ thống chúng tôi đã viết để thực hiện một số lượt xem trang/phiên, chúng tôi loại bỏ các phiên dựa trên tỷ lệ xem trang, nhưng chúng tôi cũng không lo lắng về việc loại bỏ nhện "tốt" vì chúng tôi không muốn chúng được tính trong dữ liệu. Chúng tôi không làm bất cứ điều gì về việc ngăn chặn bất kỳ khách hàng nào thực sự xem các trang.

+1

+1 robots.txt sẽ không hoàn thành công việc nếu nhện độc hại. Bạn sẽ cần phải chặn chúng tại tường lửa bằng IP hoặc chuỗi tác nhân người dùng, nhưng tiếc là (như bạn đã lưu ý) điều này có thể khá khó khăn để theo kịp. –

+0

Tốt nhất là nên tạo một Mô-đun HTML để lọc ra các tập lệnh độc hại dựa trên tỷ lệ yêu cầu, IP, bất cứ điều gì. – Todd

+0

Nếu bạn sử dụng một HTTPModule thì bạn đang mở bản thân cho đến một cuộc tấn công DOS có thể xảy ra. –

1

robots.txt chỉ hoạt động nếu con nhện tôn vinh nó. Bạn có thể tạo một HttpModule để lọc ra các trình thu thập dữ liệu mà bạn không muốn thu thập dữ liệu trang web của mình.

+0

Đồng ý. Vì vậy, miễn là bạn có thể xác định nhện tốt, giống như của đại lý người dùng của họ, bạn không cần phải lo lắng về việc làm thế nào để xác định những người xấu. Nếu nó yêu cầu quá thường xuyên và không phải là một con nhện tốt hơn lọc nó ra. – CodeAndCats

+0

Bỏ qua robots.txt chính là điều cho thấy con nhện "lừa đảo", xem câu trả lời của tôi về honeypot. – Constantin

0

Bạn nên làm những gì tốt tường lửa làm khi họ phát hiện sử dụng độc hại - cho phép họ tiếp tục đi nhưng không cung cấp cho họ bất cứ điều gì khác. Nếu bạn bắt đầu ném 403 hoặc 404 họ sẽ biết điều gì đó sai. Nếu bạn trả lại dữ liệu ngẫu nhiên, họ sẽ tìm hiểu về doanh nghiệp của họ.

Để phát hiện sử dụng độc hại, hãy thử thêm liên kết bẫy trên trang kết quả tìm kiếm (hoặc trang họ đang sử dụng làm bản đồ trang web của bạn) và ẩn nó bằng CSS. Cần phải kiểm tra xem họ đang tuyên bố là một bot hợp lệ và cho họ thông qua mặc dù. Bạn có thể lưu trữ IP của họ để sử dụng trong tương lai và tìm kiếm nhanh ARIN WHOIS.

6

Một cách tiếp cận là thiết lập một hố tar HTTP; nhúng liên kết sẽ chỉ hiển thị với trình thu thập thông tin tự động. Các liên kết nên đi đến một trang nhồi với văn bản ngẫu nhiên và các liên kết đến chính nó (nhưng với thông tin bổ sung trang: /tarpit/foo.html, /tarpit/bar.html, /tarpit/baz.html - nhưng có kịch bản tại/tarpit/xử lý tất cả các yêu cầu với kết quả 200).

Để giữ những người tốt ra khỏi hố, hãy tạo chuyển hướng 302 tới trang chủ của bạn nếu tác nhân người dùng là google hoặc yahoo.

Nó không phải là hoàn hảo, nhưng nó sẽ ít nhất làm chậm những người ngây thơ.

CHỈNH SỬA: Theo đề xuất của Constantin, bạn có thể đánh dấu hố tar là những thăng hoa trong robots.txt. Những người tốt sử dụng nhện web tôn vinh giao thức này sẽ ở lại khỏi hố tar. Điều này có lẽ sẽ loại bỏ yêu cầu tạo ra chuyển hướng cho những người nổi tiếng.

+0

+1, nhưng để giữ cho những người tốt ra khỏi hố, bạn nên sử dụng robots.txt thay vì dễ dàng tha thứ chuỗi tác nhân người dùng. – Constantin

+0

điểm tốt, tôi sẽ thêm vào đó. –

+0

Ngoài ra, bạn cũng có thể đăng nhập địa chỉ IP của bất kỳ bot nào truy cập tarpit của bạn và nếu bạn thấy cùng một IP bị xén lên và chặn nó một cách cụ thể. Có thể chạy IP thông qua Askimet tự động khi họ nhấn tarpit và đặt khối thời gian vào chúng sau khi nhấn tarpit. – Hades

5

Nếu bạn muốn tự bảo vệ mình khỏi trình thu thập thông tin chung, hãy sử dụng honeypot.

Xem, ví dụ: http://www.sqlite.org/cvstrac/honeypot. Các spider tốt sẽ không mở trang này bởi vì trang web của robots.txt không cho phép nó một cách rõ ràng. Con người có thể mở nó, nhưng không phải là bấm vào "tôi là một con nhện" liên kết. Con nhện xấu chắc chắn sẽ theo cả hai liên kết và do đó sẽ phản bội danh tính thực sự của nó.

Nếu trình thu thập thông tin được tạo riêng cho trang web của bạn, bạn có thể (theo lý thuyết) tạo một honeypot đang di chuyển.

1

Tôi đồng ý với cách tiếp cận honeypot nói chung. Tuy nhiên, tôi đặt liên kết CHỈ tới trang/tài nguyên honeypot trên trang bị chặn bởi "/robots.txt" - cũng như honeypot bị chặn bởi như vậy. Bằng cách này, rô bốt độc hại phải vi phạm quy tắc "không cho phép" hai lần để tự cấm. Một người dùng điển hình theo cách thủ công sau một liên kết không thể nhấp được có khả năng chỉ làm điều này một lần và có thể không tìm thấy trang chứa URL honeypot.

Tài nguyên honeypot ghi lại địa chỉ IP vi phạm của ứng dụng khách độc hại vào tệp được sử dụng làm danh sách cấm IP ở nơi khác trong cấu hình máy chủ web. Bằng cách này, một khi được liệt kê, máy chủ web chặn tất cả truy cập thêm bằng địa chỉ IP của khách hàng đó cho đến khi danh sách bị xóa. Những người khác có thể có một số loại hết hạn tự động, nhưng tôi tin rằng chỉ trong việc loại bỏ thủ công khỏi danh sách cấm.

Ngoài ra: Tôi cũng làm điều tương tự với spam và máy chủ thư của tôi: Các trang web gửi thư rác cho tôi vì thư đầu tiên của họ bị cấm gửi thêm bất kỳ tin nhắn nào cho đến khi tôi xóa tệp nhật ký. Mặc dù tôi thực hiện các danh sách cấm này ở cấp ứng dụng, nhưng tôi cũng có danh sách cấm hoạt động cấp tường lửa. Mail và máy chủ web của tôi cũng chia sẻ thông tin IP bị cấm giữa chúng. Đối với một spammer không phức tạp, tôi nhận thấy rằng cùng một địa chỉ IP có thể lưu trữ cả một con nhện độc hại và một spewer thư rác. Tất nhiên, đó là tiền Botnet, nhưng tôi chưa bao giờ gỡ bỏ nó.

+0

Bài đăng đầu tiên tốt. – slm

Các vấn đề liên quan