Почему запрет на переключение вкладок не спасает онлайн-тесты от списывания
Онлайн-тестирование стало важной частью современного образования и процесса найма сотрудников. Многие платформы и компании пытаются бороться с мошенничеством, внедряя технические ограничения — например, запрет на переключение вкладок в браузере. Но насколько это эффективно на практике? И что...
Игра по своим правилам: хак лидерборда в Telegram MiniApp
Игра по своим правилам. Рассказываю, как с помощью DevTools и нестандартных методов можно выйти на первое место в Telegram MiniApp. Читать далее...
Это под силу даже веб-разработчику! Размышляю, как создать драйверы на JavaScript с API WebUSB
Привет! Я Игорь Кечайкин, руководитель группы разработки во Frontend-команде Flocktory. Недавно, решая задачу, связанную с API WebUSB для Fingerprint-атрибуции пользователя, задался совершенно не связанным теоретическим вопросом: а как создать с этим API драйверы на JavaScript? Чтобы разобраться,...
[Перевод] Прочтите это, если планируете работать с Next.js
Выбор технологического стека для проекта — это важное решение, которое всегда имеет последствия. В больших корпорациях (в особенности) такой выбор зачастую предполагает, что придётся долгие годы придерживаться запланированного, и этот выбор в долгосрочной перспективе скажется на всей дорожной карте...
Как приготовить обфускацию в JavaScript и не сжечь лабораторию: AST, babel, плагины
Вероятно каждый программист или компания, сталкивались с мыслями о своей крутости или хотя бы крутости своих алгоритмов 😎. Разумеется, в этом случае может возникнуть соответствующее нежелание делиться разработками с широкой аудиторией. Данная проблема минимизируется переносом части кода на сервер...
Заставляем работать демонстрационный пример из официальной документации npm пакета csrf-csrf
Ничто так не бесит при изучении новых пакетов/библиотек, как неработающие примеры из официальной документации. До последнего не веришь, что авторы библиотеки так лоханулись с исходниками примеров. Считаешь, что программисты потратили кучу своего времени на разработку, тестирование и продвижение...
Игрушечный ботнет на JavaScript под BitBurner
Предлагаю стать хакерами на пару дней, захватить сеть города и собрать криптовалюту с компьютеров беспечных соседей. Мы не станем вредить, а вирус напишем в компьютерной игре BitBurner. Писать вирусы - плохо, но изучать - интересно. Научим вирус распространяться по сети и выполнять команды -...
[Перевод] Секрет внутри одного миллиона чекбоксов
Спустя несколько дней после начала разработки «одного миллиона чекбоксов» (One Million Checkboxes, см. новость на Хабре) я решил, что меня взламывают. Что это делает в моей базе данных? Спустя несколько часов я уже лил слёзы гордости за талантливых подростков. Но вернёмся к началу. Что такое One...
[Перевод] Создание собственного графического клиента ChatGPT с помощью NextJS и Wing
К концу этой статьи вы создадите и развернете клиент ChatGPT с помощью Wing и Next.js. Это приложение может запускаться локально (в локальном облачном симуляторе) или развертываться у вашего собственного облачного провайдера. Читать далее...
Обфускация и деобфускация JavaScript: основы и инструменты
В цифровом мире информационная безопасность важна для обеспечения непрерывной работы бизнеса и защиты конфиденциальности пользователей. Однако, несмотря на внедрение различных мер защиты, веб‑приложения — важные мишени для злоумышленников, которые постоянно ищут уязвимости для эксплуатации. Один из...
IP калькулятор глазами админа или инструмент для работы со списками сетей
Тема больших списков IP адресов не перестаёт быть актуальной, не обошла она и меня стороной, вызвав, скорее, академический интерес. Желание покрутить-повертеть базы адресов переросло в проект-хобби выходного дня – одностраничное веб-приложение претендующее на роль помощника системного...
Приглашаем на онлайн-митап «Гетерогенность, или Деплой JavaScript туда и обратно»
В четверг, 26 октября, в 17:00 состоится онлайн-митап, посвященный JS-разработке: «Гетерогенность, или Деплой JavaScript туда и обратно». На ивенте расскажем, как мы в «Лаборатории Касперского» развернули несколько веб-приложений в совершенно разных средах на единой кодовой базе, разберем...
Обеспечение безопасности Frontend приложений
Безопасность является важным фактором при создании frontend приложений, поскольку они часто являются отправной точкой для атак. Я решил собрать в одну статью основные меры, которых стоит придерживаться или о которых хотя бы нужно задуматься. Следуя этим основным мерам безопасности, frontend...
[Перевод] Лучшие практики безопасности Node.js
Назначение Этот документ призван расширить текущую модель угроз и предоставить подробные рекомендации по обеспечению безопасности приложения Node.js. Читать далее...
XSS с мутациями: как безопасный код становится зловредным и при чем здесь innerHTML
В статье сначала взглянем на примеры mXSS уязвимостей недалекого прошлого, а затем рассмотрим совсем свежие примеры, которые позволили обойти защиту популярных HTML-санитайзеров. Разберемся как им это удалось, и почему так сложно надежно защититься от уязвимостей, основанных на мутациях...
Разработчики Chrome снизили приоритет критической уязвимости в Chrome. Вы можете с этим помочь
На днях была новость о том, что в релизной версии Chrome уже какое-то время можно переписать содержимое буфера обмена пользователя. Идиотизма ситуации прибавляет то, что проблема появилось из-за того, что у одного разработчиков не проходили тесты. Сначала на багтрекере проблеме выставили нулевой...
manifest.json подводные камни
Установка расширения в браузер возможна благодаря такой замечательной штуке, как manifest.json. Но что он может скрывать и почему важно изучать (по возможности) манифест перед установкой. Сегодня мы это разберем! Читать далее...
Фантастические веб-уязвимости и где они обитают
Мы часто слышим в новостях фразы «Хакеры атаковали», «Хакеры взломали», «Хакеры украли» и подобные. Как сообщают legaljobs, хакеры проводят 1 атаку в вебе каждые 32 секунды. По прогнозам cybercrime magazine, ущерб от киберпреступлений к 2025 году составит $10,5 трлн против $3 трлн в 2015 году. Но...
Назад