Оказалось, что счётчик очереди на Госуслугах можно скрутить Статьи редакции

Он отсчитывался со стороны пользователя, а не сервиса.

2 июля на Госуслугах произошёл сбой — сайт показывал, что сейчас на нём заказывают услуги более 500 тысяч пользователей, и предлагал подождать полчаса. В Минцифры объяснили проблему тем, что на Госуслуги добавляли новые сервисы.

Фронтенд-разработчик в Twitter предложил лайфхак, чтобы не ждать так долго. Нужно было зайти в код страницы и отредактировать его — счётчик отсчитывался со стороны пользователя, а не на сервере.

@A_Kapustin Как не ждать 30 минут, а пройти за 30 секунд ¯\_(ツ)_/¯ https://t.co/X2z3xA3Pce
0
249 комментариев
Написать комментарий...
Одуванчик Полевой

"счётчик отсчитывался со стороны пользователя, а не на сервере." - это же просто прекрасно. Уровень! Надо проверить что там ещё на клиенте висит...уверен что несколько дыр для доступа к БД спокойно можно накопать.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Anton Sharonov

Вы походу совсем не шарите в веб-разработке (особенно в бэкенде), раз пишите такой бред)))

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Anton Sharonov

Ага, так и нужно делать. Сначала потратить миллионы бюджетных денег и не заниматься проектированием, потом обнаружить что сделанное поделие не способно выдерживать нагрузки, и потом вместо того, чтобы реализовать простое решение по балансировке входящей нагрузки (в нормальной архитектуре это делается в течение рабочего дня даже при внештатной ситуации), запилить позорный костылик на фронте) Сразу видно, вы опытный бэкенд разработчик, они же именно так и делают обычно))

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Alex

Причем здесь разработчики если как будет выглядеть тот или иной функционал решают менеджеры ? Сомневаюсь, что разработчики не смогли бы сделать адекватный таймер.

 > Ничего "позорного" в таком костыле нет

Есть, хотя бы то что этот таймер - наебалово. Нет ничего позорного в том,  что проект нагрузки не выдержал, всякое бывает (хотя тоже спорно). Показали бы просто адекватный компонент-ошибку. Но показывать юзеру "таймер", который останавливается при сворачивании браузера или теряется при обновлении и вообще фейковый - то есть обманывать посетителя Госуслуг, на секундочку, это позор.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Alex
Актуальных задач, действительно требующих серьезной реализации

меня как юзера это мало волнует, с неопределённой (но существенной) вероятностью я увижу что этот таймер фейковое фуфло, надо ли говорить какие эмоции я испытаю от этого продукта ?

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Alex

Ну если вы думаете что из огромного количества пользователей только "полтора инженера" заметили это, тогда понятно.

как по мне разработка "и так сойдёт" это не уровень госуслуг, при том что в целом это проект близкий к отличному

Ответить
Развернуть ветку
Миша Магадан
"и так сойдёт" это не уровень госуслуг,

принцип разумной достаточности везде подходит

Ответить
Развернуть ветку
Alex

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

разумный перфекционизм никогда не мешал

Ответить
Развернуть ветку
Алексей Бобр

Именно, что это их уровень. Разработкой занималась ГК Ланит - те ещё специалисты

Ответить
Развернуть ветку
Alex
 HTTP 500, обновите позже

и нет, существуют много несложных ux-решений когда юзеру показывается компонент с ошибкой не такой деревянный и тухлый, а вполне "дружелюбный". 

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Alex
 Это не так

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

Ответить
Развернуть ветку
Арсений

Ну вообще можно в локалсторэйдж добавить время и от него отсчитывать. То есть сделать не фэйковым. А с другой стороны - зачем вообще этот таймер нужен? Если сервер не справляется - ну ок, зачем левые заглушки. 

Ответить
Развернуть ветку
Tema Borisenko

А при чем тут уважение к бюджетам заказчика, главное — зачем, платят, работай, вот нафига такая честность?

Ответить
Развернуть ветку
KK

Если на серваке 500к клиентов и надо его разгрузить, нет смысла грузить бэк ещё этой проверкой. Он и так в случае чего отдаст 500.

Ответить
Развернуть ветку
Одуванчик Полевой

Расскажи мне о стандартах разработки и информационной безопасности))

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Одуванчик Полевой

не задавайте подобные вопросы на собеседовании)

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Одуванчик Полевой

https://searchinform.ru/informatsionnaya-bezopasnost/osnovy-ib/ 
Почитайте, если в универе прогуляли

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Игорь Богданов

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

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Игорь Богданов
 Такую ссылку можно сделать для любого веб-сервиса под любым предлогом, включая какой-нибудь плагин темной темы для "Одноклассников".

Так так и делают.

Здесь проблема в том, что во-первых, для гос услуг сложно придумать действительно рабочий предлог и во-вторых, нежелание у человека ждать 30 минут ради того, чтобы тупо попасть на сайт.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Игорь Богданов

Даже не столько хочу сказать относительно этой ситуации, сколько о подобной практике со стороны такого ресурса как Госуслуги в целом.
Всё же, социальная роль заботы о безопасности имеет место быть и учитывать возможные способы массовой компрометации даже в результате действий самих пользователей. От того такие полумеры и выглядят странными.

Ответить
Развернуть ветку
Pavel Zakharov
(или мануал для скрипта в консоли), но вместе с тем тырить какие-нибудь данные.

А современные браузеры такое позволят? На CORS не заругается разве?

Ответить
Развернуть ветку
Одуванчик Полевой

не путайте свои проектики с ГОС СЕРВИСОМ, который хранит исчерпывающие данные миллионов жителей страны! Что допустимо и нормально для сайтика по продаже надувных женщин не приемлимо для сайта Госуслуги! И тут речь явно не о таймере. Речь об отношении к стандартам разработки. 

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Одуванчик Полевой

Что значит "Какой стандарт разработки был нарушен, на ваш взгляд?"??? По Вашему стандарты разработки и информационной безопасности - это что-то типа 10 заповедей Господних??? Вы вообще хоть раз в глаза видели эти стандарты? Вы учились на программиста в ВУЗе или самоучка? 

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Одуванчик Полевой

к счастью,  чем больше таких как вы, тем больше работы для меня)

Ответить
Развернуть ветку
Андрей Калинин
к счастью, чем больше таких как вы, тем больше работы для меня)

Чет мне кажется вы перепутали в этой фразе местоимения) да и вообще нашли к чему прикопаться. Эта элементарная уловка решает проблему и не создает новые, не нагружает сервер и обходится в 0 ресурсов.

Ответить
Развернуть ветку
Anton Sharonov

Это не "уловка". Это придуманный на скорую руку,  неработающий костыль, который могут сделать джуниоры, но не должны делать разработчики в крупнейшем государственном онлайн-сервисе.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Alexander Shibaev

"Вот только серверу от этого легче то не стало" в смысле, блять, не стало? из nginx отдалась статика с таймером, которую можно отдавать в любых количествах. Ну давайте подумаем как это довести до ума: впилить дополнительную проверку после окончания таймера, что действительно время закончилось. Для этого на бэке надо заебенить сервис, который бы это проверял, где-то рядом развернуть кластер какой-нибудь базы вроде редиса. Провести это всё говно через СБ, девопсов/админов, которые под это вот всё деплои напишут, закупить возможно доп сервера.
Ребята сделали вполне нормальный костыль, обход которого не мешает вообще никому и никакой опасности не представляет. 

Ответить
Развернуть ветку
Дмитрий

Вы странный, не хотел бы я, чтобы такой человек оказался руководителем у меня в компании.

Ответить
Развернуть ветку
Андрей Деревянко

Мнение джуна

Ответить
Развернуть ветку
Николай Наумов

Вы уверены, что он государственный? Гос - просто название.

Ответить
Развернуть ветку
Андрей Деревянко

Безопасник? Это многое бы объяснило - и отбитость и то, что докопался до реализации простейшей и, при этом, работающей фичи

Ответить
Развернуть ветку
John Doe

Судя по твоим "компетентным" комментариям до нормальной работы тебе еще далеко 

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Одуванчик Полевой

Дожили, Пэхэпэшники-самоучки учат людей жизни)) 

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Одуванчик Полевой

Да, я заметил))

Ответить
Развернуть ветку
Павел Егоров

<sarcasm>Точно, нужно было собрать рабочую группу по разработке таймера, отправить пару десятков писем, выявить стейкхолдеров, разработать устав проекта, написать прототип дорожной карты, подписать декларации о намерениях, спланировать работы, отметить новый 2022 год, приступить к реализации, создать команду по внедрению и все, проблема решена!</sarcasm>

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Николай Наумов

Кто вам сказал, что этот сервис Государственный?!? Вы хоть оферту перед предоставлением личных данных читали?

Ответить
Развернуть ветку
Илья Рожнев

А ну т.е. задача таймера не распределить нагрузку, а просто ширма? Если это норма, то наверное у вас всё на «клее и скотче», ведь видимость работоспособности важнее, чем качество этой работы.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Влад Берг

Главное чтоб в привычку не вошло

Ответить
Развернуть ветку
Одуванчик Полевой

а зачем вы постоянно редактируете свои комментарии? Чтобы ответы оппонентов казались несвязными и неубедительными?)) Или жизненная позиция такая?

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Одуванчик Полевой

Ахахах) Просто, чтобы вы знали ВОТ ЭТО, НАПРИМЕР
"Слишком малый коэффициент технических ухищрений на задачу "подрежьте нагрузку на полчаса"?" НИФИГА НЕ ЗАПЯТАЯ)))

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Одуванчик Полевой

Слушай, малохольный, я студентом был лет 15 назад, а ты со своими друзьями-говнокодерами так и не поняли что значит программирование. Уметь кодить и быть программистом разные вещи. И можете меня хоть до потери пульса минусить, но при таком отношении к разработке вы в жизни вы как были эникейщиками и сайтоверстальщиками, так и останетесь. Но я этому даже рад, ведь чем Вас, неучей, больше, тем больше лично у меня работы. Так что дерзайте, говнокодеры, минусить меня полностью)) 

Ответить
Развернуть ветку
Alexander Shibaev

Дык вы поделитесь своим линкедином и предложите решение. Но сначала сформулируйте задачу, которую решаете.

Ответить
Развернуть ветку
Одуванчик Полевой

Читайте с самого начала. 

Ответить
Развернуть ветку
Alexander Shibaev

дык я прочитал весь тред и не увидел от вас никакой конкретики. Вот и хочется понять ваш реальный профессиональный опыт и предлагаемое решение.

Ответить
Развернуть ветку
Одуванчик Полевой

Предлагаемое решение максимально простое:
1. Продуманная архитектура перед началом проекта. Не должно быть перегрузки сервера или сбоев из-за "наплыва пользователей". Ресурс разве не рассчитан на 140 миллионов граждан? 
2. Соблюдение элементарных правил разработки и безопасности, в данном случае вешать на фронт вонючий таймер для ограничения доступа - это по вашему уровень важнейшего гос проекта? 
3. Можно было хотя-бы предусмотреть резервы для "внезапного сбоя или перегрузки"? Денег не хватило? Серьёзно? 
4. Самое главное: если они халатно отнеслись ко всему перечисленному, то где ещё они накосячили? Вообще, можно ли им доверять после увиденного? 

Ответить
Развернуть ветку
Alexander Shibaev

Очень общие слова. Давайте по пунктам. Как вы предлагаете решать подобную задачу? Не "продуманная архитектура перед началом проекта". Ваши слова сейчас просто флейм.
Начать стоит с формализации задачи, которую вы пытаетесь решить.
Но совсем сначала хочется увидеть ваш линкедин и понять, что конкретно и где вы делали.

Ответить
Развернуть ветку
Одуванчик Полевой

Я на линке уже третий год как не сижу. Нет нужды. 

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
John Doe

Сразу видно, что ты никогда не разрабатывал высоконагруженные системы, а скорей всего вобще ничего не разрабатывал, максимум кодер на побегушках 

Ответить
Развернуть ветку
Одуванчик Полевой

О, "разработчик высоконагруженных систем" подкатил). Ну вам, "понятливым" всегда сразу все видно и понятно, только переделывать за вами как в навозе копаться) 

Ответить
Развернуть ветку
John Doe

Ссылку на linkedin будь добр

Ответить
Развернуть ветку
Я не скажу свое имя машине
Ответить
Развернуть ветку
Wonabeez Doratie

И да и нет. А вот опытные архитекторы закладывают такую опцию сразу

Ответить
Развернуть ветку
Артур Гаврончук

А потом увольняют этих опытных разработчиков после подобной статьи на vc)

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
George Kiskin

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

Ответить
Развернуть ветку
John Doe

На самом деле, опытные разработчики вообще такой дичи с таймерами не делают - это хак как бы ты его не реализовывал

Ответить
Развернуть ветку
Одуванчик Полевой

Слушай, ты или трусы одень, или крестик сними. Определись уже со своей позицией, наконец) 

Ответить
Развернуть ветку
Grigoriy Malyshev

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

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Николай Т

В одном крупном банке так подсчёт суммы по операциям сделали в клиенте на android а потом постепенную загрузку периода при просмотре, вот так из безобидных фич растут вполне ощутимые баги :) открываешь траты за месяц а в подвале сумма 1/10 от трат и при scroll-е изменяется ...

Ответить
Развернуть ветку
246 комментариев
Раскрывать всегда