Итак, я почти закончил свою систему уведомлений, и непосредственно перед тем, как я собираюсь внедрить reCAPTCHA, я проверяю, что произойдет, если я буду спамить уведомления.
Чтобы дать вам представление о моей системе уведомлений. Я определяю новейший контент по его отметке времени. Я извлекаю строки из базы данных ORDER BY timestamp. Значение метки времени представляет собой целое число, отформатированное в Unix Time . Когда отображаются уведомления, они являются гиперссылками, которые следуют за этим форматом URL -
http://test.com/article/id
Где id - это идентификатор таблицы, каждый раз, когда отправляется новая статья, идентификатор увеличивается. После спама я заметил, что URL-адреса спам-уведомлений расположены в обратном порядке. После дальнейшего изучения я обнаружил, что, если я спам достаточно быстро, переменная отметки времени не является достаточно точной, и записывает несколько представлений с одной и той же отметкой времени.
Поскольку на моем веб-сайте сейчас очень мало трафика и не так много заявок, в настоящее время это не проблема, но если очень мало шансов, но если часть контента передается одновременно с другой, уведомления будут ранжироваться, когда они были отправлены неправильно, небольшая, но раздражающая ошибка.
Так что мне интересно, что мне делать. Должен ли я решить проблему, или это очень маловероятно, что это произойдет. Благодаря внедрению reCAPTCHA, рассылка спама не является проблемой, но есть вероятность, что это может произойти случайно.
Я предложил 3 возможных решения. Мой вопрос, который был бы наиболее эффективным
- Создайте глобальный идентификатор для всех 4 типов контента, который увеличивается каждый раз, когда создается комментарий, статья или обновление.
- Используйте более точную функцию времени PHP, такую как microtime
- Добавить некую вторичную переменную ранжирования