2011-04-25 31 views
6

Tôi có biểu mẫu liên hệ gửi tới email của tôi và gần đây tôi đã bị tấn công bởi một số loại tấn công spam ... Tôi đã nhận được email 76k qua đêm từ cùng một địa chỉ IP. Nó làm tôi rất tức giận. Tôi có thể làm gì để sữa nó? Tôi biết tôi có thể thực hiện captcha nhưng tôi không muốn điều đó. : \

Tôi có thể làm gì khác để ngăn gửi nhiều biểu mẫu?

+0

Bạn có thể sử dụng '$ _SESSION' để lưu lần cuối cùng biểu mẫu liên hệ được gửi và số lần gửi trong phiên này. Khi số đếm vượt quá 3 và lần cuối cùng thấp hơn 5 phút trước, hãy đăng cảnh báo và cập nhật lần cuối để ngăn spam. – Khez

+1

@Khez chỉ hoạt động nếu khách hàng xử lý cookie. Nếu không thì một phiên mới sẽ được tạo cho mỗi yêu cầu. Tôi không nghĩ đây là bằng chứng spammer. –

+0

@ James đúng, đó là lý do tại sao tôi chỉ nhận xét và không trả lời. Chỉ đang cố đẩy anh ta đi đúng hướng. – Khez

Trả lời

10

Bạn có thể cố gắng ngăn chặn điều này trong một số cách khác nhau:

  • CAPTCHA (bạn đã nói bạn không thích nó nhưng tôi t là có thể là giải pháp dễ nhất)
  • Trả lời một số loại câu hỏi đó thật dễ dàng cho một người để trả lời nhưng không phải là một kịch bản
  • Đảm bảo người dùng sẽ được đăng nhập trước khi có thể gửi (giả sử họ phải được đăng ký)
  • Tỷ lệ giới hạn biểu mẫu sao cho mỗi địa chỉ IP chỉ có thể gửi một lần trong mỗi khoảng thời gian N
+0

Tôi thích kết hợp địa chỉ phiên và địa chỉ IP. Nhưng +1 để cung cấp nhiều giải pháp. – Khez

0

một captcha là một cách rất phổ biến để ngăn chặn như vậy (và vì một lý do rất tốt, bạn nên suy nghĩ về nó)

nếu không bạn có thể thiết lập một cookie và kiểm tra xem thiết lập của nó, nếu nó là, không cho phép gửi thư, hoặc đăng nhập ip trong một tập tin hoặc một cơ sở dữ liệu và kiểm tra khi ip cuối cùng gửi thư, và nếu sự khác biệt là đủ nhỏ, không cho phép gửi thư

+0

-1 Anh ta chỉ nói anh ta biết anh ta có thể thực hiện captcha, nhưng không muốn nó. Điều này phù hợp hơn với tư cách là một bình luận. – Khez

1

Để tránh captcha, bạn có thể lọc tối đa 10 thư mỗi ngày từ cùng một IP.

Mỗi lần ai đó gửi tin nhắn sẽ lưu trữ ip và tăng bộ đếm trong cơ sở dữ liệu.

0

Điều đơn giản nhất cần làm là làm cho việc gửi biểu mẫu (hoặc hiển thị) yêu cầu thực thi javascript. Đó là một chút ít xã hội đối với bất kỳ ai đã cài đặt NoScript, nhưng phần lớn các tập lệnh tự động sẽ không thể xử lý nó.

+0

Loại câu trả lời sai. Các kịch bản tự động gửi yêu cầu POST trực tiếp đến trang. JS sẽ không làm gì để giúp đánh bom. – Khez

+0

Nếu cách duy nhất để nhận URL POST hợp lệ là thực thi một số JS, thì nó hoạt động. – regularfry

+0

Bạn ngụ ý rằng URL bài đăng thay đổi theo mỗi lần làm mới, điều đó thật khủng khiếp. Bạn thêm phí vào một giải pháp mà người dùng hợp pháp của bạn có thể thậm chí không thể sử dụng được. – Khez

4

Bạn có thể sử dụng Akismet, không sử dụng xác thực.

+1

+1 akismet được làm bằng tình yêu tinh khiết –

+0

Giải pháp rất tốt cho vấn đề này. – daganh