Как стать автором
Обновить

Вышел релиз GitLab 17.0 с каталогом CI/CD в общем доступе и новой метрикой аналитики цикла разработки AI Impact

Уровень сложностиСредний
Время на прочтение28 мин
Количество просмотров4.1K
Всего голосов 4: ↑4 и ↓0+6
Комментарии10

Комментарии 10

Подозреваю, что просто интернет "моргнул" при отправке. Сам сталкивался (правда, на других сайтах).

При открытии этих публикаций у меня меня проскакивало какое-то сообщение об ошибке на сайте, но очень быстро скрывалось и странице перерисовывалась скриптом движка. Поэтому, вряд ли тут дело в интернете, скорее всего что-то с кодом сайта или редактора перемудрили.

Интересно что ID записей нечетные,

при этом если попробовать зайти на четные то хабр отвечает:
"Страница устарела, была удалена или не существовала вовсе"

Меня всегда удивляли, почему нет никакой защиты у практически любого сайта со статьями? Тот же обычный хэш статей хранить и сравнивать, есть ли повтор. Да, у того же md5 может быть коллизия, но можно проверять хотя бы за последний час.

Либо сделать элементарную проверку через JavaScript блокирующий нажатие кнопки много раз. Эх сразу видно, программисты не работали с Arduino или другими устройствами, где есть физическая кнопка и нужно правильно обрабатывать импульс его нажатия, чтобы не было многократных срабатываний.

Либо сделать элементарную проверку через JavaScript ...

Так может это и отрабатывает какая-то другая проверка для защиты, но чего-то другого :-)

Меня всегда удивляли, почему нет никакой защиты у практически любого сайта со статьями? <...>

Возможно, подобные ситуации возникают недостаточно часто для того, чтобы заморачиваться.

Либо сделать элементарную проверку через JavaScript блокирующий нажатие кнопки много раз. <...>

Согласен, в простейшем случае достаточно отключать кнопку (sendButton.disabled = true) после первого нажатия. Хотя в суровой действительности такой подход может создать дополнительные проблемы.

P.S. Нашел статью на эту тему: Don't disable buttons

Ну так-то это немного о другом статья, а именно, что disabled = true делает кнопку невидимой для скринридеров. Но никто не запрещает поменять ей стиль, а в обработчике делать проверку на `isSending`. А ещё, как вариант, можно было бы генерировать случайный токен, которым затем проверять запросы на дублирование. Это даже лучше в случае с микросервисами.

Вы хотите, чтобы на техническом портале обеспечили идемпотентность запросов? Да ну, бред какой-то :)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации