input type=file спамят

флоппик

promotor fidei
Команда форума
Партнер клуба
Для запроса формы, генерируешь уникальный ключ, хранишь копию в сессии - и кладешь в скрытое поле в форме, потом - ждешь получения этого ключа через форму, и сверяешь его с тем, который у тебя в сессии. Почти как кука, но без пользовательского ввода. В простом случае, это гарантирует, что: 1. пользователь видел форму перед отправкой (защищает от CSRF) 2. Что форма была запрошена именно с твоего сервера. Если этот токен получать (но не генерировать!) например через аякс, и заполнять в форму, то это будет гарантировать, что это был браузер (исключение, конечно, специально обученный на тебя бот). В случае, когда есть nginx и доступ к его конфигурации, совместно с модулем secure_link можно будет педалить ботов не затрагивая вызов похапе.

Минусы: как и все автоматизированные методы, неустойчив к бригаде китайцев.
 

Yoskaldyr

"Спамер"
Партнер клуба
бот может уже быть настроен на спам на данный action. Поэтому если нет возможности токен сделать, то по любому надо изменить action url и по возможности всю форму генерить js-ом (но тоже не на долго поможет если action всегда будет постоянным).

Вообще-то простому спам боту в большинстве случаев абсолютно пофигу на саму страницу формы, он может ее 1 раз прочитать для описания формы, а потом ему достаточно долбиться post/get запросами на определенный url. Вот когда на сервере стоит какая-либо защита тогда и нужны умные боты, ведущие себя как браузеры и понимающие js. А если проверок на стороне сервера нет, то все варианты изменения верстки или динамической генерации формы будут бесполезны.
 
Последнее редактирование:

fixxxer

К.О.
Партнер клуба
:)))
Для моего варианта сессия не нужна. Но нужен nginx:)
 

Redjik

Джедай-мастер
ну да nginx - же придется собирать а не из апта ставить :D
 

Dovg

Продвинутый новичок
Redjik, да ладно, уже несколько лет nginx есть официальном репозитории.
 

fixxxer

К.О.
Партнер клуба
В официальных пакетах на nginx.org он есть, в дебиане и убунте тоже.

За 200 рублей, кстати, можно купить впску на DO, и ещё останется на сырок "Дружба"
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
а это хорошо, не знал, обновил себе nginx из официального репо, есть этот мудуль
 

Василий М.

Новичок
Написал функцию которая автоматом подставляет action у формы - не помогло.
Думал, роботы сохранили URL формы. Добавил параметр

PHP:
function thumbnail_upload(_this)
{
    // Динамическая подстановка action для формы нужна для предотвращения загрузки изображений ботами.
    _this.form.action = "/thumbnail/thumbnail/antibot/1/";
// ...
при отсутствии которого в контроллере поставил exit; -- не помогло!
 

riff

Новичок
Я понимаю, что мой ответ навряли поможет, но чисто попробовать:
<input id="file" type="file" onchange="thumbnail_upload(this)" name="file">
А если не добавлять onchange сразу в коде, а сделать
$('#file').change(function(){...});
?
 
Сверху