Оказалось, что счётчик очереди на Госуслугах можно скрутить Статьи редакции
Он отсчитывался со стороны пользователя, а не сервиса.
2 июля на Госуслугах произошёл сбой — сайт показывал, что сейчас на нём заказывают услуги более 500 тысяч пользователей, и предлагал подождать полчаса. В Минцифры объяснили проблему тем, что на Госуслуги добавляли новые сервисы.
Фронтенд-разработчик в Twitter предложил лайфхак, чтобы не ждать так долго. Нужно было зайти в код страницы и отредактировать его — счётчик отсчитывался со стороны пользователя, а не на сервере.
24
показа
37K
открытий
7
репостов
"счётчик отсчитывался со стороны пользователя, а не на сервере." - это же просто прекрасно. Уровень! Надо проверить что там ещё на клиенте висит...уверен что несколько дыр для доступа к БД спокойно можно накопать.
Комментарий недоступен
Вы походу совсем не шарите в веб-разработке (особенно в бэкенде), раз пишите такой бред)))
Комментарий недоступен
Ага, так и нужно делать. Сначала потратить миллионы бюджетных денег и не заниматься проектированием, потом обнаружить что сделанное поделие не способно выдерживать нагрузки, и потом вместо того, чтобы реализовать простое решение по балансировке входящей нагрузки (в нормальной архитектуре это делается в течение рабочего дня даже при внештатной ситуации), запилить позорный костылик на фронте) Сразу видно, вы опытный бэкенд разработчик, они же именно так и делают обычно))
Комментарий недоступен
Причем здесь разработчики если как будет выглядеть тот или иной функционал решают менеджеры ? Сомневаюсь, что разработчики не смогли бы сделать адекватный таймер.
> Ничего "позорного" в таком костыле нет
Есть, хотя бы то что этот таймер - наебалово. Нет ничего позорного в том, что проект нагрузки не выдержал, всякое бывает (хотя тоже спорно). Показали бы просто адекватный компонент-ошибку. Но показывать юзеру "таймер", который останавливается при сворачивании браузера или теряется при обновлении и вообще фейковый - то есть обманывать посетителя Госуслуг, на секундочку, это позор.
Комментарий недоступен
меня как юзера это мало волнует, с неопределённой (но существенной) вероятностью я увижу что этот таймер фейковое фуфло, надо ли говорить какие эмоции я испытаю от этого продукта ?
Комментарий недоступен
Ну если вы думаете что из огромного количества пользователей только "полтора инженера" заметили это, тогда понятно.
как по мне разработка "и так сойдёт" это не уровень госуслуг, при том что в целом это проект близкий к отличному
принцип разумной достаточности везде подходит
так я и не спорю, только не надо обманывать пользователя подсовывая фейковый функционал, а сделайте несложную приятную заглушку.
разумный перфекционизм никогда не мешал
Именно, что это их уровень. Разработкой занималась ГК Ланит - те ещё специалисты
и нет, существуют много несложных ux-решений когда юзеру показывается компонент с ошибкой не такой деревянный и тухлый, а вполне "дружелюбный".
Комментарий недоступен
Понятное дело что итоговое решение принимается командно и менеджеры могу принять его либо сами, либо кому-нибудь делегировать, но ответственность за итоговый функционал так или иначе лежит на них
Ну вообще можно в локалсторэйдж добавить время и от него отсчитывать. То есть сделать не фэйковым. А с другой стороны - зачем вообще этот таймер нужен? Если сервер не справляется - ну ок, зачем левые заглушки.
А при чем тут уважение к бюджетам заказчика, главное — зачем, платят, работай, вот нафига такая честность?
Если на серваке 500к клиентов и надо его разгрузить, нет смысла грузить бэк ещё этой проверкой. Он и так в случае чего отдаст 500.
Расскажи мне о стандартах разработки и информационной безопасности))
Комментарий недоступен
не задавайте подобные вопросы на собеседовании)
Комментарий недоступен
https://searchinform.ru/informatsionnaya-bezopasnost/osnovy-ib/
Почитайте, если в универе прогуляли
Комментарий недоступен
Можно, например, создать ссылку, которая будет делать всё это сама (или мануал для скрипта в консоли), но вместе с тем тырить какие-нибудь данные. При этом подобная ссылка мигом разлетится среди обычных пользователей, особенно по сообществам целевиков - родителей, подающих на выплату.
Комментарий недоступен
Так так и делают.
Здесь проблема в том, что во-первых, для гос услуг сложно придумать действительно рабочий предлог и во-вторых, нежелание у человека ждать 30 минут ради того, чтобы тупо попасть на сайт.
Комментарий недоступен
Даже не столько хочу сказать относительно этой ситуации, сколько о подобной практике со стороны такого ресурса как Госуслуги в целом.
Всё же, социальная роль заботы о безопасности имеет место быть и учитывать возможные способы массовой компрометации даже в результате действий самих пользователей. От того такие полумеры и выглядят странными.
А современные браузеры такое позволят? На CORS не заругается разве?
не путайте свои проектики с ГОС СЕРВИСОМ, который хранит исчерпывающие данные миллионов жителей страны! Что допустимо и нормально для сайтика по продаже надувных женщин не приемлимо для сайта Госуслуги! И тут речь явно не о таймере. Речь об отношении к стандартам разработки.
Комментарий недоступен
Что значит "Какой стандарт разработки был нарушен, на ваш взгляд?"??? По Вашему стандарты разработки и информационной безопасности - это что-то типа 10 заповедей Господних??? Вы вообще хоть раз в глаза видели эти стандарты? Вы учились на программиста в ВУЗе или самоучка?
Комментарий недоступен
к счастью, чем больше таких как вы, тем больше работы для меня)
Чет мне кажется вы перепутали в этой фразе местоимения) да и вообще нашли к чему прикопаться. Эта элементарная уловка решает проблему и не создает новые, не нагружает сервер и обходится в 0 ресурсов.
Это не "уловка". Это придуманный на скорую руку, неработающий костыль, который могут сделать джуниоры, но не должны делать разработчики в крупнейшем государственном онлайн-сервисе.
Комментарий недоступен
Комментарий недоступен
Комментарий недоступен
Комментарий недоступен
Комментарий недоступен
Комментарий недоступен
Комментарий недоступен
Комментарий недоступен
"Вот только серверу от этого легче то не стало" в смысле, блять, не стало? из nginx отдалась статика с таймером, которую можно отдавать в любых количествах. Ну давайте подумаем как это довести до ума: впилить дополнительную проверку после окончания таймера, что действительно время закончилось. Для этого на бэке надо заебенить сервис, который бы это проверял, где-то рядом развернуть кластер какой-нибудь базы вроде редиса. Провести это всё говно через СБ, девопсов/админов, которые под это вот всё деплои напишут, закупить возможно доп сервера.
Ребята сделали вполне нормальный костыль, обход которого не мешает вообще никому и никакой опасности не представляет.
Вы странный, не хотел бы я, чтобы такой человек оказался руководителем у меня в компании.
Мнение джуна
Вы уверены, что он государственный? Гос - просто название.
Безопасник? Это многое бы объяснило - и отбитость и то, что докопался до реализации простейшей и, при этом, работающей фичи
Судя по твоим "компетентным" комментариям до нормальной работы тебе еще далеко
Комментарий недоступен
Дожили, Пэхэпэшники-самоучки учат людей жизни))
Комментарий недоступен
Да, я заметил))
<sarcasm>Точно, нужно было собрать рабочую группу по разработке таймера, отправить пару десятков писем, выявить стейкхолдеров, разработать устав проекта, написать прототип дорожной карты, подписать декларации о намерениях, спланировать работы, отметить новый 2022 год, приступить к реализации, создать команду по внедрению и все, проблема решена!</sarcasm>
Комментарий недоступен
Кто вам сказал, что этот сервис Государственный?!? Вы хоть оферту перед предоставлением личных данных читали?
А ну т.е. задача таймера не распределить нагрузку, а просто ширма? Если это норма, то наверное у вас всё на «клее и скотче», ведь видимость работоспособности важнее, чем качество этой работы.
Комментарий недоступен
Главное чтоб в привычку не вошло
а зачем вы постоянно редактируете свои комментарии? Чтобы ответы оппонентов казались несвязными и неубедительными?)) Или жизненная позиция такая?
Комментарий недоступен
Ахахах) Просто, чтобы вы знали ВОТ ЭТО, НАПРИМЕР
"Слишком малый коэффициент технических ухищрений на задачу "подрежьте нагрузку на полчаса"?" НИФИГА НЕ ЗАПЯТАЯ)))
Комментарий недоступен
Слушай, малохольный, я студентом был лет 15 назад, а ты со своими друзьями-говнокодерами так и не поняли что значит программирование. Уметь кодить и быть программистом разные вещи. И можете меня хоть до потери пульса минусить, но при таком отношении к разработке вы в жизни вы как были эникейщиками и сайтоверстальщиками, так и останетесь. Но я этому даже рад, ведь чем Вас, неучей, больше, тем больше лично у меня работы. Так что дерзайте, говнокодеры, минусить меня полностью))
Дык вы поделитесь своим линкедином и предложите решение. Но сначала сформулируйте задачу, которую решаете.
Читайте с самого начала.
дык я прочитал весь тред и не увидел от вас никакой конкретики. Вот и хочется понять ваш реальный профессиональный опыт и предлагаемое решение.
Предлагаемое решение максимально простое:
1. Продуманная архитектура перед началом проекта. Не должно быть перегрузки сервера или сбоев из-за "наплыва пользователей". Ресурс разве не рассчитан на 140 миллионов граждан?
2. Соблюдение элементарных правил разработки и безопасности, в данном случае вешать на фронт вонючий таймер для ограничения доступа - это по вашему уровень важнейшего гос проекта?
3. Можно было хотя-бы предусмотреть резервы для "внезапного сбоя или перегрузки"? Денег не хватило? Серьёзно?
4. Самое главное: если они халатно отнеслись ко всему перечисленному, то где ещё они накосячили? Вообще, можно ли им доверять после увиденного?
Очень общие слова. Давайте по пунктам. Как вы предлагаете решать подобную задачу? Не "продуманная архитектура перед началом проекта". Ваши слова сейчас просто флейм.
Начать стоит с формализации задачи, которую вы пытаетесь решить.
Но совсем сначала хочется увидеть ваш линкедин и понять, что конкретно и где вы делали.
Я на линке уже третий год как не сижу. Нет нужды.
Комментарий недоступен
Комментарий недоступен
Комментарий недоступен
Сразу видно, что ты никогда не разрабатывал высоконагруженные системы, а скорей всего вобще ничего не разрабатывал, максимум кодер на побегушках
О, "разработчик высоконагруженных систем" подкатил). Ну вам, "понятливым" всегда сразу все видно и понятно, только переделывать за вами как в навозе копаться)
Ссылку на linkedin будь добр
www.linkedin.com/huy_s_gory
И да и нет. А вот опытные архитекторы закладывают такую опцию сразу
А потом увольняют этих опытных разработчиков после подобной статьи на vc)
Комментарий недоступен
зачем так сложно... просто для логина сохраняется в базе время захода и таймер на стороне клиента отображается от этого времени. при этом если юзер обновит страницу, а на стороне сервера будет свободно, он может сбросить таймер. всё элементарно.
На самом деле, опытные разработчики вообще такой дичи с таймерами не делают - это хак как бы ты его не реализовывал
Слушай, ты или трусы одень, или крестик сними. Определись уже со своей позицией, наконец)
По такой логике "опытного" от "неопытного" отличает понимание где можно халтурить, а где нет. По сути то оно верно, но как-то слишком "в лоб".
Комментарий недоступен
В одном крупном банке так подсчёт суммы по операциям сделали в клиенте на android а потом постепенную загрузку периода при просмотре, вот так из безобидных фич растут вполне ощутимые баги :) открываешь траты за месяц а в подвале сумма 1/10 от трат и при scroll-е изменяется ...