Intereting Posts
Плагин Favicon для WordPress работает в сетевом режиме (multisite)? Как перенаправить на домашнюю страницу после регистрации? Попытка показать ссылку «Использовать как изображение» из окна «Вложение» из сценария t31os Использовать различные таксономии в постоянных ссылках разных персонализированных почтовых сообщений? Как добавить разбивку на страницы на одну страницу WordPress с большим количеством текста WooCommerce: Как я могу управлять зависимостями между элементами ввода на странице настроек плагина WC? Как удалить параметр «Показать панель инструментов»? Что может привести к усечению WP Option? Авторы: страница авторов Выведите меню admin_position для каждого элемента Лучший способ прервать плагин в случае недостаточной версии PHP? Показать название вкладки в качестве 'blog tagline | Название блога' Файлы cookie для проверки подлинности WordPress и ajax calls проблема с созданием слайдера сообщения WordPress Где нужно установить wp_redirect, чтобы заставить его работать?

Как остановить прямой 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 проверьте, не отправлен ли этот фиктивный элемент – если это так, то его спамер.