Intereting Posts
Измените значение параметра the_content () перед показом Создание меню WordPress – не может понять конфигурацию Полная страница (нет меню и параметров администратора WP) Параметры темы администратора Поиск пользовательских идентификаторов таксономии по имени Как реализовать WP_List_Table? WP_List_Table дает массив вместо значения в таблице листинга Как правильно обрабатывать запросы ajax с помощью плагинов ajax Пустые данные POST на сервере по запросу AJAX с использованием Angular $ http Как я могу фильтровать сообщения по тегу на лету Как добавить второе пользовательское меню на боковой панели, когда тема поддерживает только одну? Как открыть подменю плагина при просмотре пользовательской версии users.php? Linkedin не возвращает правильную информацию Объект WP_Meta_Query с условными выражениями WP_Query не работает с фиксированными post_id и term_taxonomy Mass / Bulk назначает назначенные изображения сообщениям Какой точный CSS-минимизатор использует ядро ​​WP?

Как остановить прямой HTTP POST для PHP-скрипта?

У меня есть форма на моем сайте, созданная с помощью Contact Form 7 с Captcha. Содержимое формы, когда POSTED отправляется на скрипт PHP, атрибуту «action» формы задается themes/<themename>/<filename>.php

Мы получали много спама, кажется, что кто-то может обработать форму и использовать ее для отправки спама. В скрипте обработки я проверяю HTTP_REFERRER , HTTP_SERVER чтобы узнать, HTTP_SERVER ли запрос через наш сайт, но эти заголовки также можно вручную создать. Какие шаги я должен предпринять, чтобы остановить спам?

Помощь приветствуется.

EDIT : Еще одна ясность. CF7 отправит данные формы в мой скрипт по адресу http://www.example.com/wp-content/themes/themename/script.php , этот скрипт доступен. Кто-то может перейти на страницу, где находится моя форма, и скопировать HTML, заново создать форму на своей локальной машине и начать отправку формы в мой скрипт. Как это остановить?

Solutions Collecting From Web of "Как остановить прямой HTTP POST для PHP-скрипта?"

Вы должны wpcf7_before_send_mail форму с помощью wpcf7_before_send_mail и добавить свой PHP-код к функции.php (поскольку скрипт уже находится в вашей папке с темой)? Вы не потеряете способности CF7.

 function wpse_process_form( &WPCF7Object ){ #process your form here } add_action('wpcf7_before_send_mail', 'wpse_process_form' ); 

Если вы ищете решение, которое обнаруживает спам, не блокируя законных пользователей, тогда используйте akismet. Нет простого технического способа обнаружения спама, не проверяя сам контент. смарт-спамер даже загрузит вашу страницу перед отправкой формы.

Единственное техническое решение, которое может работать, – заблокировать диапазоны IP, если вы можете идентифицировать IP-адреса, с которых вы получаете большую часть спама. Вы также можете попытаться заблокировать известные «плохие» IP-адреса, используя проект honeypot .

даже я столкнулся с этой проблемой. Это то, что я наконец сделал.

  1. Измените имя файла сценария обработки POST.
  2. В ваших формах сохраняйте скрытый элемент формы, который является фиктивным элементом, если он заполняется, а затем его спамер! Поэтому в вашем сценарии обработки POST проверьте, не отправлен ли этот фиктивный элемент – если это так, то его спамер.