2011-11-13 18 views
9

tôi currentyly sử dụng mã này để chặn wget và libwwwCó cách nào để chặn CURL để tìm nạp dữ liệu trên trang web của tôi không?

Options +FollowSymlinks 
RewriteEngine On 
RewriteBase/ 
SetEnvIfNoCase User-Agent "^Wget" bad_user 
SetEnvIfNoCase User-Agent "^libwww-perl" bad_user 
Deny from env=bad_user 

là có một cho curl?

+0

Điều đó chỉ chặn họ cho đến khi người dùng thở dài và ghi đè chuỗi tác nhân người dùng. Không Wget không LWP (và có, nó là LWP không libwww) là "xấu", cả hai công cụ cũng cư xử tôn trọng robots.txt khi ở chế độ phản chiếu. – Quentin

+0

@Quentin làm thế nào tôi có thể chặn chúng sau đó? – eric

Trả lời

19

Vâng, tôi chắc chắn curl có một mặc định User-Agent, nhưng đó rõ ràng là một cái gì đó có thể thay đổi dễ dàng như -H 'User-Agent=Poop'

Trong thực tế, tôi nghĩ rằng đó là một công tắc đặc biệt cho thiết lập các đại lý người dùng. -A

3

tác nhân người dùng curl có thể được thay đổi bất kỳ lúc nào. Lý do curl tồn tại là bạn có thể thay đổi khá nhiều thứ trên truy vấn của bạn.

Bạn có thể chặn chúng, nhưng khi thay đổi tác nhân sử dụng, chúng sẽ có quyền truy cập lại.

Tôi khuyên bạn nên chặn địa chỉ IP thay thế hoặc toàn bộ mạng con để đảm bảo.

Ví dụ:

deny from aa.bb.cc.dd ff.gg.hh.0/24 
1

Bạn có thể kiểm tra ngôn ngữ ưa thích, phiên bản http, miền xa xôi và những thứ như vậy.

0

Thậm chí nếu bạn dừng lại trong một thời gian, kẻ tấn công sẽ đến đây trên trang web may mắn này và nhận được hàng tá câu trả lời về cách thức phòng thủ của bạn.

Vì vậy, tôi ghét nó nhưng không có cách nào để chặn.
Bạn có thể cấm một số IP cuối cùng, bạn có thể đặt một số honeypost để phát hiện bot nhưng mọi thứ đều có thể phá vỡ.
Vì vậy, bạn nên không quan tâm đến dữ liệu mà phải quan tâm đến dịch vụ.
Miễn là dịch vụ của bạn là tốt nhất, trang web của bạn sẽ là người đầu tiên. Và không cạo sẽ giúp họ tốt cho những ai muốn nuôi dưỡng lao động của người khác.

+0

cảm ơn bạn đã lưu ý đến điều này trong tâm trí – Derek

0

Thêm hình ảnh xác thực nếu có hai yêu cầu từ một địa chỉ IP duy nhất?

+0

Oh thôi nào, lấy ví dụ từ Google. Và bình luận khi bạn bỏ phiếu xuống để mô tả lý do cho nó. – mobius

+0

+1 tôi thích ý tưởng hình ảnh xác thực - nhưng câu hỏi của tôi là về cách bạn có thể đặt hình ảnh xác thực trên yêu cầu CURL? – eric

+0

@eric, tôi đoán đây có thể là giải pháp tốt hơn, vì nó sẽ ngăn bất kỳ khách hàng nào (kể cả curl) lạm dụng trang web của bạn (hoặc lấy nội dung từ trang web của bạn). Bạn không thể chỉ dựa vào User-Agent một cách dễ dàng vì dễ thay đổi User-Agent. Google sử dụng kỹ thuật tương tự với CAPTCHA nếu bạn cố gắng thu được quá nhiều kết quả tìm kiếm. Vì vậy, ngay cả với curl, khi captcha được kích hoạt cho IP này, curl sẽ chỉ tải xuống html chứa hình ảnh xác thực – mobius

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