Pull to refresh
15
Karma
0
Rating
Носов Константин Сергеевич @NosovK

Пользователь

20 лет проблем приема платежей

Information Security *
✏️ Technotext 2022
image
За логотип спасибо yarbabin

Электронные системы расчетов существуют в интернете уже давно, а баги на них встречаются двадцатилетней давности. Мы находили критические уязвимости, позволяющие угнать деньги и накрутить баланс. Сегодня мы разберем типовые реализации приема платежей и связанные с ними проблемы безопасности.
Читать дальше →
Total votes 133: ↑132 and ↓1 +131
Views 18K
Comments 20

Память в браузерах и в Node.js: ограничения, утечки и нестандартные оптимизации

Яндекс corporate blog Website development *JavaScript *Interfaces *Node.JS *
✏️ Technotext 2022

Интро: почему я написал эту статью


Меня зовут Виктор, я разрабатываю страницу результатов поиска Яндекса. Несмотря на внешнюю простоту, поисковая выдача — сложная штука: на каждый запрос генерируется своя уникальная страница, на которой в зависимости от запроса может присутствовать блок Картинок, Карты, Переводчик, видеоплеер и многие другие компоненты. Все они должны запускаться и работать в памяти обычных бюджетных телефонов, которые использует большинство наших пользователей. Браузерам должно хватать ресурсов, чтобы пользователь не видел вот такого:



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


Разрабатывая проект на JavaScript (TypeScript, ClojureScript или каком-то другом языке, транслируемом в JavaScript), мы привыкли создавать объекты, массивы, строки и вообще писать код, как будто память бесконечна. Это не так. Я расскажу о видах проблем с памятью, о том, какие ограничения мы часто забываем и как их можно преодолеть. В ответ браузеры и пользователи скажут вам спасибо.


Читать дальше →
Total votes 55: ↑55 and ↓0 +55
Views 27K
Comments 12

Экстремальная настройка производительности HTTP: 1,2M API RPS на инстансе EC2 с 4 виртуальными процессорами (vCPU)

Флант corporate blog High performance *Configuring Linux *System administration *Network technologies *
Translation

Прим. перев.: автор данного исследования — Marc Richards, Solutions Architect и DevOps-инженер — продемонстрировал потрясающую настойчивость и тщательность в тотальной оптимизации производительности веб-приложения. Получившийся материал — кладезь полезных знаний для расширения своего кругозора в области оптимизации, особенностей сетевого стека в Linux и не только, даже вне зависимости от практической заинтересованности в конечном результате автора. Приготовьтесь к по-настоящему длинному техническому путешествию с обилием терминологии, увлекательных графиков и полезных ссылок.

Читать далее
Total votes 75: ↑75 and ↓0 +75
Views 16K
Comments 7

Стелем мягкую соломку на жёсткий Flutter: как подготовиться к первому проекту, чтобы не провалить его

Surf corporate blog Programming *Development of mobile applications *Dart *Flutter *

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

Читать далее
Total votes 21: ↑20 and ↓1 +19
Views 6.6K
Comments 5

CouchDB, Erlang и печеньки — RCE на дефолтных настройках

Information Security *Erlang/OTP *
Tutorial

В этой короткой статье я хочу поделиться о том как получить RCE на системе с установленной CouchDB на большинстве инсталляций в локальной сети или во внешней сети, не защищенных брандмауэром. Для справки, в Shodan таких нашлось около полутора тысяч.

Читать далее
Total votes 5: ↑5 and ↓0 +5
Views 2.8K
Comments 5

Twitter начнет тестировать функцию редактирования публикаций

Social networks and communities IT-companies

Представители социальной сети Twitter сообщили, что на платформе в скором времени начнут тестировать кнопку редактирования постов. Компания сообщила, что уже год работает над функцией и готова представить ее.

Читать далее
Total votes 8: ↑8 and ↓0 +8
Views 694
Comments 3

Как получить пароль WPA2 WiFi с помощью Aircrack-ng?

Information Security *IT systems testing *Wireless technologies *
Tutorial
Sandbox
Translation

Друзья, всех приветствую!

В этой статье я покажу вам как использовать airmon-ng (скрипты из пакета aircrack-ng) для обнаружения беспроводных сетей вокруг нас. Затем мы деаутентифицируем клиентов определенной беспроводной сети, чтобы перехватить handshake, а затем расшифруем его, чтобы найти пароль WiFi.

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

Прежде чем приступить к работе, давайте посмотрим, что нам понадобится.

Читать далее
Total votes 45: ↑27 and ↓18 +9
Views 28K
Comments 31

Как мы проводили нагрузочное тестирование видеосвязи для встреч на 100 человек

Skyeng corporate blog Web services testing *Video conferencing

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

У нас в Skyeng есть групповые уроки английского, они ограничены 10 участниками. Поскольку мы не используем промежуточного преобразования сигнала, а подключаем каждого пользователя, используя SFU, получается, что каждый генерирует один исходящий поток и принимает девять входящих потоков трафика. Также наши SFU сервера записывают уроки на случай каких-то сложностей с учителем (то есть для контроля качества) и для анализа различных показателей урока.

Мы учим не только английскому, но и математике, и другим предметам. Вдруг выяснилось, что для ряда занятий нужно собирать больше 10 человек, и при этом нужно иметь возможность разговаривать с каждым. Понятно, что учителю можно дать толстый канал в 1 Мбит/с, а ученикам — каналы потоньше: в 144p или 240p, например, но всё равно квадратичный рост трафика выглядел угрожающе.

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

Вы же тоже хотите посмотреть, как быстро он упадёт, да?
Читать дальше →
Total votes 23: ↑21 and ↓2 +19
Views 5K
Comments 7

Гугл скрипт в помощь молодому отцу

Open source *JavaScript *Google App Engine *Google API *
Tutorial

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

С этим скриптом вам не придётся помнить даты, а ещё вам придёт оповещение стандартными средствами гугл календаря. Результат работы этого скрипта на скриншоте.

Расширяем функционал календаря скриптами
Total votes 23: ↑22 and ↓1 +21
Views 9K
Comments 9

Amazon S3 — детективное расследование внутренней архитектуры

System Analysis and Design *Amazon Web Services *Cloud services *Distributed systems *

Мне понравился опыт прошлого расследования по фейсбуку, и я решил организовать очередную серию, теперь про Amazon. Для нетерпеливых — в самом конце статьи описан итоговый вариант архитектуры Amazon S3 и проанализированы его свойства.



Не так давно Амазон объявил о переходе S3 с модели eventual consistency на strong consistency, то есть, предоставления гарантии read-after-write, чтения того, что было только что записано. Сообщество отреагировало, но как-то очень вяло: Amazon S3 Now Delivers Strong Read-After-Write Consistency


Первое, что лично мне подумалось в ответ на эти новости: а как же теорема CAP?

Читать дальше →
Total votes 43: ↑43 and ↓0 +43
Views 16K
Comments 16

Запуск Fintech. Откровения DevOps

Vivid Money corporate blog DevOps *

DevOps’ы? - админы, за всё ответственные, ИТ-архитекторы, разбираются в безопасности, понимают бизнес, умеют кодить, свои среди разработчиков, экономят косты и, просто приятные собеседники. Дополняйте … мы, в Vivid Money этот список можем продолжать очень долго..

Читать далее
Total votes 20: ↑7 and ↓13 -6
Views 6.8K
Comments 11

Пишем за выходные блокчейн-игру на смарт-контрактах Rust

Decentralized networks *Rust *Distributed systems *Cryptocurrencies Logic games

Сейчас регулярно выходят анонсы про NFT-metaverse-блокчейн-игры, которые привлекали инвестиции в миллионы долларов по оценке в миллиарды, но при изучении проектов там оказываются либо плашки Coming Soon, либо продажа JPG-картинок на аукционах NFT-токенов, либо централизованные проекты с гомеопатическими дозами блокчейна. Перед тем, как окрестить это всё пузырем хайпа, но я решил разобраться в технологическом стеке самостоятельно и сделать свою блокчейн-игру с NFT, потратив минимум ресурсов. Читайте под катом как у меня это получилось всего за 2 дня, а также покупайте мои NFT (нет).

Читать далее
Total votes 20: ↑18 and ↓2 +16
Views 19K
Comments 28

Вычитываем прошивку STM32

Information Security *Programming microcontrollers *
Sandbox
Translation

Почти в каждом микроконтроллере с интегрированной флэш памятью есть защита от вычитывания прошивки. Это делается чтобы защитить интеллектуальную собственность, криптографические ключи и алгоритмы от злоумышленников. Микроконтроллеры серии STM32, получившие широкое распространение в последнее время, особенно часто подвергаются атакам, однако нет практического опыта или информации касательно защищенности STM32 от подобных атак доступной публично. В этой статье рассмотрим системы защиты прошивки на примере STM32f0 серии и способы их взлома.

Flash Readout Protection (RDP) ключевой компонент в защите, включенный во все линейки микроконтроллеров. Он защищает системную прошивку, сохраненную во внутренней флэш памяти от вычитывания. В зависимости от линейки, могут быть включены дополнительные механизмы, такие как Memory Protection Unit (MPU) и привилегированные / непривилегированные режимы исполнения. Вместе, эти системы призваны повысить защищенность.

Авторы статьи пришли к выводу, что серия мк STM32F0 содержит ряд уязвимостей позволяющих в лаборатории с базовым оборудованием создать установку для вычитывания прошивки. Методы могут комбинироваться для достижения наилучшего результата или позволить работать в RDP level 2.

Узнать подробнее
Total votes 52: ↑52 and ↓0 +52
Views 24K
Comments 25

Postgresso 34

Postgres Professional corporate blog PostgreSQL *


В ожидании PostgreSQL 15


PostgreSQL 15: Часть 1 или Коммитфест 2021-07

Думаю, вы следите за обзорами Павла Лузанова о новостях коммитфестов. Если нет, то задумайтесь, не стоит ли. Павел, между прочим, не перечисляет буквально все патчи, а отбирает значимые, обычно с SQL-примерами.

Название скромничает: в обзоре также и о PostgreSQL 14 — принятые доработки. Но больше о 15-й. Часто Павел даёт коротенький код, демонстрирующий изменения — в духе «вот так запрос работал в 14-й, а в 15-й уже вот так». Иногда заныривает и глубже в историю — в 13-ю, если это оправдано контекстом, как при анализе pg_dump и схема public, например.

Напоминаем, что самое интересное о 14 версии можно прочитать и в предыдущих статьях: 2020-07, 2020-09, 2020-11, 2021-01 и 2021-03.

Читать дальше →
Total votes 8: ↑8 and ↓0 +8
Views 3.3K
Comments 1

Интересный способ сделать config для web js библиотеки

JavaScript *
Tutorial
Sandbox

Новое это давно забытое старое...

История о том как случайно получилось найти супер способ передать параметры в независимый javascript виджет.

GET параметры? Нет кое-что получше.

Читать далее
Total votes 25: ↑21 and ↓4 +17
Views 8.1K
Comments 16

Оптимизация .NET приложений: большой результат маленьких правок

PVS-Studio corporate blog .NET *C# *

0852_NETAppsPerf_MinChangesMajorRes_ru/image1.png


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

Читать дальше →
Total votes 35: ↑33 and ↓2 +31
Views 19K
Comments 11

Миру нужны фуллстек-крафтсмены

JUG Ru Group corporate blog Programming *Development Management *Agile *Conferences


Спор «фуллстек против узкой специализации» вечный. Но одно дело — спорить в комментах, а совсем другое — создать собственную компанию и проверить экстремальный подход на практике. Антон Кекс пошел по этому пути: стал сооснователем компании Codeborne, где разработкой занимаются исключительно «фуллстек-крафтсмены» и практикуется экстремальное программирование. И по его словам, там командами из 2-4 человек получается сделать то, на что другим требуется человек 50.


Он подробно рассказал об этом на нашей конференции JPoint. Обычно на наших мероприятиях не услышишь слово «agile», потому что о методологиях много пустословия, а мы любим конкретику, код и хардкор. Но поскольку Антон не диванный теоретик, а обладатель большого нестандартного опыта, это как раз хардкор и ценная информация.


Можно не соглашаться с его позицией, но как минимум ознакомиться с ней полезно. И хотя доклад сделан еще пару лет назад, в 2021-м он продолжает собирать просмотры, поэтому мы решили сделать для Хабра текстовую версию. Под катом — и видеозапись, и текстовая расшифровка. Дальше повествование ведется от лица Антона.

Читать дальше →
Total votes 28: ↑25 and ↓3 +22
Views 9.7K
Comments 30

Кастомные операторы RxJS

OTUS corporate blog JavaScript *Programming *Angular *
Translation

Библиотека RxJS благодаря широкому выбору операторов по праву считается крайне мощным инструментом в арсенале разработчика. В этом посте я хочу представить вам концепцию кастомных операторов RxJS с примерами реализации.

Читать далее
Total votes 8: ↑6 and ↓2 +4
Views 4.3K
Comments 0

Почему мы предпочитаем CSS(--variable) переменным SASS($variable)?

Website development *CSS *HTML *
Translation
С момента релиза CodyHouse Framework, пару месяцев назад, многие пользователи спрашивали нас, почему мы выбрали переменные CSS вместо переменных SASS, хотя мы используем SASS в этой среде. В этой статье я расскажу о преимуществах использования пользовательских свойств и о том, почему они стали решающими в нашем рабочем процессе.


Total votes 24: ↑24 and ↓0 +24
Views 40K
Comments 5

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity