Intereting Posts
Просмотр комментариев на странице комментариев без формы Ссылки галереи изображений на средний образ вместо полноразмерного изображения Жесткое обновление стили Отображение мета-поля в настраиваемом типе сообщений на странице скрыть комментарии для сообщений до зарегистрированных пользователей Как ссылаться на страницу параметров тем из любого места в админ? Можете ли вы иметь две CPT с одинаковой структурой ссылок? После перехода от DEV к LIVE, woocommerce не может проверить Динамически созданная страница URL и содержимого Перепишите, чтобы загрузить главную страницу для другого URL-адреса Меню не отображается в пользовательской теме Отображать форматы сообщений по-разному на index.php (функция цикла) Вложенные URL-адреса CPT + Сообщений 2 Сообщений позволить пользователям добавлять несколько разделов на статическую страницу Текстовый виджет создает <li>

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