Почему метка времени на странице шестнадцатеричная? - PullRequest
0 голосов
/ 26 марта 2019

Я получил код от другого разработчика, чтобы проверить, потому что реализация spamfilter была неправильной в одной из форм для связи с компанией на сайте (спам-сообщения прошли).

Когда я посмотрелв этом коде он генерировал миллисекунды, здесь называемые timestamp , когда сайт загружался, и сравнивал его с меткой времени, когда был сделан запрос.Если эта разница меньше 3000, то она считается ботом и выдает ошибку.

Теперь я знаю, что это не лучший способ реализации спам-фильтра, и возникла проблемапотому что эта метка времени была кэширована, поэтому она всегда будет больше 3 секунд, но меня интересует следующее:

Когда он генерировал метку времени при загрузке сайта, он конвертировал эту метку времени в шестнадцатеричный ,Интересно, почему он это сделал, есть ли способ, которым боты могут распознавать обычную скрытую метку времени, это рекомендуемый способ сделать это и т. Д.

Я хочу реализовать метку времени через js, чтобы она небыть кэшированным на странице, и мне интересно, должен ли он быть шестнадцатеричным?

Вот мой код:

Javascript:

const encodedTimestamp = Date.now();
document.querySelector("[data-js='contact-form']").setAttribute('data-ets', encodedTimestamp)

Java:

final String timestampString = request.getParameter(PN_SELECTOR);
            //long timestampLong = new BigInteger(timestampString, 16).longValue();
            long timestampLong = Long.parseLong(timestampString);

            Date loadPageTimestamp = new Date(timestampLong);
            Date submitPageTimestamp = new Date();
            long difference = submitPageTimestamp.getTime() - loadPageTimestamp.getTime();

            if (difference < 3000)
            {
                result = true;
            }

Закомментированная строка из предыдущей реализации, где он получит метку времени в шестнадцатеричном значении.

Итак, будет заключительный вопрос : имеет ли это смыслс шестнадцатеричной меткой времени в этой ситуации, и если да, то почему?

...