2009-08-18 29 views
12

Có ai đó có thể ngăn chặn thành công spam trên trang web của họ mà không gây gánh nặng cho khách truy cập của bạn (ví dụ: CAPTCHA) và không sử dụng hệ thống báo cáo thư rác tập trung (ví dụ: Akismet)Cách ngăn chặn SPAM không có CAPTCHA hoặc hệ thống quản lý tập trung (ví dụ: akismet)

tôi đã tìm thấy this & it looks promising, but doesn't contain detailed deployment instructions.

tôi muốn trình bày các hình thức web của tôi mà không gánh nặng người dùng của tôi với CAPTCHA như công nghệ, mà còn tích cực tự động ngăn chặn thư rác.

Dường như không tồn tại hướng dẫn/hướng dẫn chi tiết về cách triển khai công nghệ như vậy.

Disclaimer

Ngoài ra, tôi nhận ra không có viên đạn bạc thích hợp để ngăn chặn thư rác. Nhưng nếu chỉ đơn giản là đặt một hệ thống phòng chống xâm lấn không xâm lấn (người dùng vô hình) ngăn chặn 95%% spam, nó sẽ đáng để nỗ lực triển khai.

+0

Nhiều ý tưởng được thảo luận tại đây http://stackoverflow.com/questions/ 8472/phương pháp tiếp cận thực tế không dựa trên hình ảnh-captcha – skaffman

+1

@skaffman, bài viết đó trong trường hợp bạn không nhận thấy có liên kết trong bài đăng gốc của tôi là giải pháp. Câu hỏi của tôi là, không tồn tại một hướng dẫn đủ chi tiết về cách thực hiện một công nghệ như vậy – TimJK

+0

Mea culpa. Như bạn. – skaffman

Trả lời

3

Mật ong Pot captcha (article by Phil Haack). Là phương pháp thông thường được sử dụng để làm những gì bạn đang tìm kiếm. Nó không phải là dễ dàng, nhưng thực sự là gì?

Điều này dường như là khá nhiều những gì bạn đã khám phá. Chỉ cần làm thẩm định của bạn để hiểu những hạn chế của giải pháp là gì, nếu bạn vẫn tìm thấy nó đáp ứng nhu cầu của bạn, hãy yên tâm kỹ thuật này đã được đưa vào sử dụng tốt bởi những người khác.

1

Nếu có giải pháp tối ưu, sẽ không cần đến CAPTCHA. Tuy nhiên, nếu kích thước của trang web của bạn không đủ lớn để đảm bảo một người nào đó tìm kiếm một cách thủ công để hack nó, bảo mật thông qua sự tối tăm có thể là cách tốt nhất. Chẳng hạn như liên kết bạn đã cung cấp ở trên hoặc dễ dàng như thêm đầu vào được gọi là "City_2" và làm cho nó bị ẩn. Nếu hộp đầu vào được điền, rất có thể bạn đã có một spammer khi họ tự động điền vào mọi lĩnh vực - chỉ cần đổ dữ liệu và di chuyển dọc theo ... Chỉ cần 2 xu của tôi.

+1

Trong khi giải pháp City_2 có thể tốt, tôi muốn bình luận rằng "bảo mật thông qua sự tối tăm" không phải là loại bảo mật nào cả. – JasCav

+0

@ Jason: Captchas như vậy là "an ninh thông qua sự tối tăm", thực sự khá đúng nghĩa. Một số văn bản bị che khuất (méo) phải được xác định, đó là tất cả. Không có * bảo mật thực sự *, không có phần ẩn, trước đây đã trao đổi khóa bí mật hoặc bất kỳ thứ gì. Captcha chỉ mờ hơn một chút so với một con người, và đó là vấn đề. – deceze

0

This là giải pháp làm việc rất tốt, tôi sử dụng nó trong các dự án của mình.

Đó là giá trị một thử ...

+0

Có vẻ như một dịch vụ được quản lý tập trung để gắn cờ nhận xét của tôi là spam hay không. Tôi muốn có mọi thứ cục bộ cho hệ thống của mình và không dựa vào bên thứ ba. Cảm ơn mặc dù – TimJK

0

tôi sử dụng Akismet, đó là thực sự chỉ là rất giống với một bộ lọc thư rác email, nhưng khá mạnh mẽ như nó liên tục xây dựng một profile Bayesian với thư rác kết hợp của tất cả các trang web bằng cách sử dụng dịch vụ (khoảng 18 triệu bình luận mỗi ngày). Dịch vụ web của họ cực kỳ đơn giản và rất nhanh - chỉ cần gửi nhận xét qua dây và họ sẽ gửi lại phản hồi "spam" hoặc "không phải spam". Có existing Akismet libraries cho hầu hết mọi nền tảng.

Trên trang web của tôi, nếu nhận xét trôi qua, tôi đặt nó vào cơ sở dữ liệu, nếu không tôi chỉ lặng lẽ bỏ qua nó.

+0

Tôi đã sửa đổi câu hỏi của mình, không cần hệ thống quản lý spam tập trung. (Không muốn dựa vào các bên thứ 3) – TimJK

1

Loại bỏ 99% thư rác, thấy điều này - http://wordpress-plugins.feifei.us/hashcash/

Rõ ràng nó chỉ ngăn thư rác tự động, sử dụng nó cùng với Akismet hay cái gì khác và có được một bảo vệ 100%.

Cập nhật: Cách thức hoạt động của HashCash? Chi phí thư rác không có gì (botnet miễn phí sử dụng), đó là lý do tại sao nó hoạt động. Vì vậy, ý tưởng là nếu quá trình này có thể được thực hiện (CPU) đắt tiền sau đó số lượng lớn gửi thư rác/tin nhắn sẽ không hoạt động.Chi tiết khác ở đây - http://en.wikipedia.org/wiki/Hashcash

Phiên bản đơn giản hơn có thể được triển khai bằng JavaScript. Trước khi gửi biểu mẫu, tập lệnh sẽ tạo ra giá trị được tính toán. Quá trình này phải là CPU đắt tiền. Hầu hết các botnet sẽ tránh làm như vậy và do đó không có spam tự động.

+0

Nó không rõ ràng với tôi cách thức hoạt động của HashCash. Bạn có phiền phức không? – TimJK

+0

câu trả lời cập nhật với thông tin thêm –

1

Gần đây tôi đã thử một kỹ thuật rất đơn giản. Tôi nhận thấy rằng khi được trình bày với một bộ sưu tập các nút radio, các chương trình thư rác dường như luôn chọn tùy chọn đầu tiên hoặc chấp nhận bất kỳ điều gì đã được kiểm tra trước. Vì vậy, trên một trang web tôi chạy tôi có một hình thức mà người dùng điền vào với có lẽ một nửa tá câu hỏi. Một trong những câu hỏi là "loại mục nhập" với các nút radio cho các lựa chọn. Vì vậy, tôi đã thêm một lựa chọn đầu tiên mới, "Tôi là một người gửi spam", với một nhận xét về cha mẹ giải thích lý do tại sao sự lựa chọn là có, và làm cho nó là mặc định. Nếu biểu mẫu được gửi cùng với tùy chọn đó được chọn, tôi sẽ trả về một thông báo lỗi thay vì thông báo xác nhận thông thường. Kể từ khi làm điều đó, số lượng thư rác tôi nhận được đã giảm xuống gần như không có gì. Tôi không biết liệu những gì còn lại là chương trình spam có chiến lược khác - ngẫu nhiên chọn giữa các nút radio có sẵn - hoặc nếu đó là những kẻ gửi thư rác của con người chứ không phải là rô bốt.

Chủ yếu là tôi đã làm điều này như một thử nghiệm để xem nó có hoạt động không - và thẳng thắn vì thật thú vị khi lừa các chương trình thư rác chỉ đơn giản là thú nhận và tự biến mình! Chủ yếu là tôi đưa nó lên để thảo luận: có thể nó sẽ đóng góp cho một ý tưởng tốt hơn.

Nếu người gửi spam quyết định rằng trang web nhỏ của tôi đáng để dành sự chú ý đặc biệt của họ, họ có thể dễ dàng đánh bại điều này bằng bot thư rác thông minh hơn một chút. Nhưng có thể nói về nhiều chương trình chống spam.

0

Nhận xét chung về bất kỳ hệ thống chống spam nào: Không có gì bạn làm sẽ an toàn 100%. Nếu trang web của bạn đủ lớn hoặc bổ ích đủ để người gửi spam quyết định dành sự chú ý đặc biệt để phá vỡ trang web đó, họ có thể sẽ tìm cách. Nhưng nó giống như họ thường nói về an ninh gia đình: Chắc chắn, một tên trộm chuyên nghiệp, có tay nghề có thể đánh bại bất kỳ hệ thống báo động nào mà chủ nhà trung bình có khả năng có khả năng chi trả. Nhưng bạn sẽ tránh những người nghiệp dư vụng về, và nếu bạn gặp rắc rối đủ cho người chuyên nghiệp, bạn sẽ tăng nguy cơ cho anh ta khi anh ta phá vỡ nó, bạn sẽ trở về nhà hoặc một người hàng xóm sẽ gặp anh ấy và gọi cảnh sát. Khi tôi làm việc cho quân đội, chúng tôi thường xuyên nói về sự cân bằng giữa an ninh và ngăn cản người dùng hợp pháp thực hiện công việc của họ. Mục tiêu trong quân đội không phải là một số "bảo mật tuyệt đối" giả thuyết, mà là một cái gì đó đủ tốt để giảm nguy cơ "mức chấp nhận được" phù hợp với sự bất tiện tối thiểu cho người được ủy quyền. Rõ ràng những gì cấu thành "chấp nhận được" phụ thuộc vào những gì bạn đang bảo vệ: Tôi chắc chắn hy vọng rằng những người bảo vệ đầu đạn hạt nhân khăng khăng đòi hỏi mức độ an ninh cao hơn so với những hệ thống radar. Những người ở những khu vực bị nghi ngờ tấn công, giống như căn cứ ở Trung Đông, có độ an toàn cao hơn so với những căn cứ ở Mỹ. Vv

Điểm: Trang web của bạn có khả năng là mục tiêu như thế nào? Tôi chắc chắn hy vọng ngân hàng của tôi sử dụng bảo mật chặt chẽ hơn để bảo vệ tiền của tôi hơn là tôi bận tâm sử dụng để ngăn chặn gửi spam trừu tượng trên trang web quy ước mà tôi chạy. Các trang web có hàng triệu khách truy cập và nổi tiếng có lẽ cần bảo mật tốt hơn các trang web ít người biết đến với hàng nghìn hoặc hàng trăm khách truy cập. Bao nhiêu là "đủ tốt"?

6

Tôi về cơ bản sử dụng một mẹo trên trang web của mình để ngăn Spam và nó hoạt động tốt (ít nhất là cho đến khi các lập trình viên spambot đọc bài đăng này;)).

Mã là như thế này:

Trong kịch bản xây dựng các trang web, trong đó có hình thức, tôi thực hiện:

$_SESSION['lastSiteId'] = 'something Unique'; 
$_SESSION['lastSiteRequest'] = time(); 

Các kịch bản có chứa các logic để viết ý kiến ​​vào một cơ sở dữ liệu chứa này :

if($_SESSION['lastSiteId'] == 'something Unique' 
    && $_SESSION['lastSiteRequest'] + 5 < time()){ 

    insertComment(); 
}else{ 
    echo "Please read the article before posting a comment"; 
} 

Hãy nhớ đây là mã giả để cung cấp cho bạn ý tưởng. Bạn phải thực hiện tất cả một mình vào cuối ...;)

Tất cả những gì bạn làm là kiểm tra xem có hơn 5 giây đã trôi qua giữa việc xóa biểu mẫu và gửi yêu cầu POST hay không.

Được cảnh báo rằng kỹ sư spambot không ngủ. Đặt cược là, spambots có thể chờ một vài giây trước khi gửi đầu vào không mong muốn nếu lập trình viên muốn nó theo cách đó. Câu hỏi sẽ là: Có bao nhiêu thư rác có thể được gửi nếu Người gửi thư rác phải đợi 5 giây giữa các yêu cầu? Xem, có thể đây là giải pháp cuối cùng để ngăn chặn Spam.

Kết hợp kiểm tra thời gian với các bài kiểm tra javascript (nếu có thể và muốn) cộng với các thủ đoạn trường đã điền sẵn/chưa được điền, bạn sẽ được lưu từ spam vài năm kể từ bây giờ.

+0

bởi thời gian tôi viết bình luận này chương trình SPAM đầu tiên đã làm cho nó thông qua cơ chế phòng chống SPAM của tôi. Đó là "Trang web của bạn là vinh dự cho đôi mắt của tôi. Hãy viết những trang nội dung tốt như vậy." - loại Spam.Phải mất gần 2 năm để một bot SPAM gửi bình luận lên blog của tôi, vì vậy tôi nghĩ rằng cách tiếp cận của tôi là tốt và chỉ cần được thực hiện một chút mạnh mẽ hơn. – mondjunge

0

Trong biểu mẫu (bình luận hoặc cũng liên hệ với hình thức), bạn nên thêm một đầu vào ẩn

<input type="text" id="hidden_input" name="hidden_input" style="display:none;"/>

và viết một chút php để kiểm tra xem đầu vào này được lấp đầy, vì vậy với một lựa chọn 'nếu so với người khác 'bạn có thể kiểm soát

if($_POST['hidden_input'] != ""){ 
    echo('<p>You are a spambot!!!</p>');  
} 

Điều này bởi vì mọi người không thể xem biểu mẫu này, vì vậy chúng tôi không thể điền vào biểu mẫu này. Bằng cách này, bot thực sự lấp đầy mọi đầu vào, vì vậy nếu mọi đầu vào đều điền vào PHP, hãy gửi thông báo lỗi này và nó không gửi đến nhận xét hoặc email của máy chủ,

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