Từ chối Đệ trình biểu mẫu có URL trong đó


7

Tôi có một khách hàng đang sử dụng Drupal và có một mẫu liên hệ email. Vấn đề là họ đang nhận được thư rác được gửi qua biểu mẫu hàng ngày.

Tôi đã thử plugin Re-captcha, plugin captcha, Anti-spam (Askimat) và plugin Honeypot.

Những kẻ phạm tội đang sử dụng các chương trình như XRumer có khả năng giải các captcha và không có plugin nào trong số này có thể ngăn chặn các bot.

Vì vậy, tôi đang hỏi những người khác nếu họ có lời khuyên nào về cách ngăn chặn những lần gửi thư rác liên hệ này?

Vì biểu mẫu cụ thể này không nên có lý do chính đáng cho URL trong phần nội dung, có thể tôi có thể phát hiện URL và sau đó trả lại lỗi nếu chúng xuất hiện khi biểu mẫu được gửi?


Mollom có ​​thể là một giải pháp tốt hơn. nó vượt ra ngoài sự bảo vệ catpcha với các phương thức lọc.
Andre Baumeier

Tôi đã từng viết một Quy tắc tùy chỉnh kiểm tra các nhận xét cho một số từ khóa nhất định bằng cách sử dụng một biểu thức chính dài (đại loại như \b(?:purses|dental|headphones)\b) vì tôi đã nhận được rất nhiều thư rác cho một số loại sản phẩm nhất định. Nó hoạt động khá tốt Các quy tắc có thể chấp nhận hoặc từ chối các bình luận một cách có điều kiện tùy thuộc vào việc cơ quan bình luận có thông qua regex của tôi hay không. Cuối cùng, khi mức độ thư rác leo thang, tôi chỉ thay đổi Quy tắc để xóa các bình luận vi phạm mà không cần kiểm tra chúng theo cách thủ công :-p
thứ

Câu trả lời:


3

Có thể tạo biểu mẫu liên hệ bằng cách sử dụng mô-đun Webform hoặc mô-đun Entityforms .

Cái hay của cái sau là khả năng đính kèm các trường và xác thực các trường đó bằng mô-đun Xác thực Trường , cung cấp một loạt các tùy chọn xác thực.

Có một mô-đun Xác thực Webform để sử dụng với Webforms, nhưng tôi nghĩ rằng bạn sẽ thấy Entityforms với xác thực Trường sẽ linh hoạt hơn một chút và có lẽ, dễ sử dụng hơn.

Bạn nên cho phép bạn quét văn bản để nói "<a href =" hoặc bất kỳ từ hoặc cụm từ không mong muốn nào khác (khớp danh sách đen) hoặc các cấu trúc sử dụng các biểu thức thông thường, nếu bạn đang nghiêng.


1

Tôi không quen thuộc với những gì XRumer có thể và không thể làm, nhưng nó sẽ làm tôi ngạc nhiên nếu nó có câu trả lời cho tất cả các câu hỏi có thể. Điều đó trong tâm trí tôi sẽ đề xuất Captcha Riddler mà tôi thấy hoạt động rất tốt.


1

Một thay thế rất đơn giản với mã tùy chỉnh (cá nhân tôi nghĩ rằng việc cài đặt một loạt các mô-đun cho một nhiệm vụ đơn giản như vậy là quá mức cần thiết):

function MYMODULE_form_alter(&$form, &$form_state, $form_id) {
   if ($form_id == 'my_form_id') {
     $form['#validate'][] = 'MYMODULE_form_link_removal_validation';
   }
}

function MYMODULE_form_link_removal_validation($form, &$form_state) {
  // Basic regex for anchor tags
  $regex = '/<a[^>]*>/i';

  if (preg_match($regex, $form_state['values']['body_field'])) {
    form_set_error('body', t('Links are not allowed in this field.'));
  }
}

Bạn có thể tiến xa hơn một chút nếu bạn muốn và triển khai bộ lọc phù hợp cho nó (xem hook_filter_info()) và cũng cố gắng khớp các liên kết bên ngoài các neo nếu bạn bật bộ lọc 'Chuyển đổi URL thành liên kết'. Cơ chế là như nhau, phương thức khớp chuỗi sẽ chỉ cần được thay thế cho phù hợp.


0

Không quá chắc chắn về việc kiểm tra URL nhưng có một trang trên drupal.org nói về việc ngăn chặn thư rác trên biểu mẫu liên hệ - Ngăn chặn thư rác . Nó đề cập đến một vài mô-đun mà bạn chưa thử.

Ngoài ra còn có một loạt các mô-đun ngăn chặn thư rác trên trang drupal.org sau - trang wiki drupal phòng chống thư rác


0

Dưới đây là mã mô-đun đầy đủ (D6) chặn các lần gửi url trong Biểu mẫu web . Nếu bạn muốn phiên bản D7 thì hãy cho tôi biết.

Ngay cả khi bạn chặn gửi url, Bots vẫn sẽ cố gắng đăng! Tôi có một trang web dựa trên D6 và tất cả những kẻ gửi thư rác từ khắp nơi trên thế giới đều cố gắng spam nó bằng mọi cách, có hoặc không có url.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.