Pull to refresh
26
1.6
Копетан О. Я. @vanxant

User

Send message

Domain fronting для чайников, и как его использовать для обхода блокировок

Level of difficulty Medium
Reading time 11 min
Views 37K

Давайте сразу вопрос на засыпку: может ли быть так, что клиент подключается, ну, например, к серверу www.python.org (самому настоящему, тому, к которому обращаются еще миллионы клиентов со всего мира), а потом использует его как прокси и гоняет через это подключение трафик до своего VPS для доступа в неподцензурный интернет? Если вы не уверены в ответе на этот вопрос или почему-то ответили "нет", то добро пожаловать в статью.

Я уже не раз рассказывал здесь о технологии XTLS-Reality (1, 2, 3) суть которой в том, что ваш прокси-сервер VPS может очень достоверно маскироваться под какой-нибудь популярный веб-сайт - принимать подключения, которые будут выглядит точно так же, как обращения к настоящему сайту, отвечать на них полностью аутентичным TLS-сертификатом, и в целом вести себя как тот настоящий сайт. Единственная проблема - сам IP-адрес. Немного подозрительно, когда к какому-нибудь якобы www.google.com постоянно обращается только один пользователь, а IP-адрес этого сервера на самом деле даже не относится к автономной сети Google.

Еще я рассказывал о разных вариантах проксировать трафик посредством вебсокетов и простых HTTP-туннелей через различные CDN, такие как Cloudflare и Gcore. Вероятность того, что под блокировку попадет вся CDN гораздо ниже, чем что забанят какой-то один сервер или диапазон хостера, но та схема требовала регистрацию своего домена для работы через CDN.

И наверняка многим в голову приходила идея, а нельзя ли как-нибудь совместить эти два механизма? Проксироваться через CDN, но при этом "прикрываясь" каким-нибудь чужим доменом? Ответ: да, можно, и сейчас мы посмотрим, как именно.

Читать далее
Total votes 75: ↑74 and ↓1 +73
Comments 45

Жизнь, пульсирующая в черной дыре

Level of difficulty Hard
Reading time 7 min
Views 53K

На habr ранее активно обсуждалась теория Вселенной, осциллирующей в черной дыре, которая развивается в ряде работ, в том числе моих с соавторами (но не только). Чего стоит дискуссия от 2018 года на 600 комментариев «Жизнь внутри черной дыры» (отмечу, что я не инициировал этот пост, просто меня спросили — не возражаю ли я, а я, конечно, вовсе нет). Там, конечно, много странных заявлений, но я не принимал прямое участие в этой дискуссии, потому что был слишком занят дальнейшим развитием теории. Но в этом году ситуация изменилась: работа над моделью циклической Вселенной с переменной гравитационной массой для меня практически завершена. Она подробно изложена в книге «Осциллирующая Вселенная», которая опубликована в бумажном и электронном варианте издательством Челябинского государственного университета в феврале 2023 года. Книгу (со свежими уточнениями на 25 сентября 2023 года) можно скачать на сайте Пущинской обсерватории.

Читать далее
Total votes 112: ↑108 and ↓4 +104
Comments 332

Пилотируемый полет США на Марс в 2039

Level of difficulty Medium
Reading time 14 min
Views 13K

Данная статья по большей части является кратким изложением исследования NASA MTAS (Mars Transportation Assessment Study, март 2023). Текст содержит интересные факты о трудностях полета к Красной планете.

Читать далее
Total votes 64: ↑64 and ↓0 +64
Comments 46

Linux-порт Far Manager: новости весны 2023

Level of difficulty Medium
Reading time 4 min
Views 22K

Обычно я пишу статьи об развитии проекта far2l — порта знаменитого Far Manager под Linux, MacOS и BSD (а теперь ещё и Haiku) раз в год. Но иногда случается так, что объем новостей на статью набирается быстрее. Недавно произошло сразу несколько важных событий, поэтому дожидаться конца года не буду, а опубликую самое интересное сразу.

Нас взяли в Debian!

Это, пожалуй, главная новость. К сожалению, в Bookworm мы попасть не успели, так что ждите нас в следующем выпуске, или в Ubuntu 23.10. Да, можно будет делать sudo apt install far2l, без всяких сложностей с ppa или самостоятельной сборкой!

Читать далее
Total votes 141: ↑141 and ↓0 +141
Comments 89

Использовать unwrap() в Rust — это нормально

Level of difficulty Easy
Reading time 26 min
Views 7.7K

Сравнительно недавно на Хабре была опубликована статья "Rust: ни в коем случае не используйте unwrap() в продакшене". Мягко говоря, тезисы, высказываемые в данной статье, спорны и содержат мало обоснования. Предлагаю читателям взглянуть на альтернативную точку зрения: почему использовать unwrap() в Rust — это нормально (в том числе и в продакшене). Автор оригинальной статьи — Эндрю Галлант.

Читать далее
Total votes 26: ↑24 and ↓2 +22
Comments 15

Как рисовать красивые соединения с помощью SVG

Level of difficulty Medium
Reading time 5 min
Views 12K

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

Читать далее
Total votes 36: ↑36 and ↓0 +36
Comments 16

Как подружить конструктор лендингов Сайты24 с работающим ecom-проектом. Полет нормальный?

Reading time 10 min
Views 2.5K

Всем привет, на связи снова AGIMA, а я ее тимлид — Дмитрий Матлах. Сегодня мы поделимся историей — расскажем о том, как избавились от одной очень назойливой боли. До недавнего времени эта боль преследовала нас постоянно: из месяца в месяц, из проекта в проект. Если и вам приходилось разрабатывать лендинги в составе ecom-проекта с отлаженными системами CI/CD c ревью кода и тестированием каждой итерации, возможно, вы тоже задумывались над этим. Какая боль, и, главное, как же мы с ней справились? Сейчас расскажем.


Читать дальше →
Rating 0
Comments 1

Одновременная генерация структурированных табличных данных и изображений при помощи GAN

Reading time 9 min
Views 2.5K

Мы хорошо знаем GAN за успехи в создании реалистичных изображений. Не так хорошо знаем о формировании табличных данных. Однако их возможно применять при одномоментной реализации табличных данных и изображений.

Зачем генерировать одновременно табличные данные и изображение?

Я создал приложение coronarography.ai. На вход нейронной сети подаются структурированные данные (факторы риска развития сердечных заболеваний) и изображение ЭКГ, на выходе получаем патологию магистральных артерий сердца. Мне стало интересно проверить точность прогнозирования обученной нейронной сети на синтетических сгенерированных данных. Почему бы и нет) Проведем аугментацию выборки при помощи GAN и посмотрим точность обученной нейронной сети на синтетических данных. Для этого необходимо эти синтетические данные получить.

Описание проблемы

Мы имеем структурированные данные. В них содержится информация по каждому наблюдаемому пациенту в виде наличия факторов риска развития сердечно-сосудистых заболеваний в бинарной форме. К каждому наблюдению прикреплено ЭКГ изображение. То есть одному пациенту соответствуют факторы риска и одно изображение ЭКГ, снятое до суток до выполнения инвазивной коронарографии, это данные которые прогнозирует основная обученная нейронная сеть.

Нам необходимо одновременно генерировать структурированные данные (факторы риска и таргеты виде поражения артерий сердца) и картинку - ЭКГ изображение. Я в литературе не встречал подобных примеров, чтобы генерировали одновременно табличные данных и картинку. Что ж, сделаем впервые). Сгенерируем 1500000 синтетических наблюдаемых в виде табличных данных и ЭКГ изображения.

Читать далее
Total votes 4: ↑4 and ↓0 +4
Comments 0

Как проверяют физических лиц в СБ компаний методом OSINT

Reading time 6 min
Views 19K

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

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

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

DISCLAIMER: Данная статья написана в ознакомительных целях и не является руководством к неправомерным действиям или обучающим материалом для сокрытия правонарушений.

Читать далее
Total votes 21: ↑14 and ↓7 +7
Comments 14

Токсичная вежливость

Reading time 5 min
Views 55K

Обратил внимание на одну неприятную особенность окружающей меня реальности — токсичную вежливость. Расскажу о ней на примере моей падчерицы Дарьи — девушки, вне всякого сомнения умной, но впитывающей всю молодежную повесточку как губка.

Дело в том, что Дарья косячит. Как, впрочем, и все мы. И накосячив — извиняется. Громко, искреннее, прижимая руки к сердцу. После чего считает инцидент полностью исчерпанным. После чего искреннее удивляется, когда этого оказывается недостаточно.

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

               — Да, я просыпала муку, — не стала отпираться Дарья, — извините.

               — Извинения не принимаются, — спокойно отвечаю я.

               — Я же извинилась! — возмущается она, — чего вам еще надо?

               — Слово «извините», Дарья, означает только признание своей вины в случившемся.

               — Хорошо. Я признала вину в случившемся. Инцидент исчерпан.

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

               — Нет никаких последствий. Я убрала просыпавшуюся муку и принесла извинения, — снисходительно машет рукой Дарья.

               — Извинения на хлеб не намажешь, Дарьюшка! — возмущаюсь я, — накосячила? Исправляй! Просыпала муку? Сходи и купи новую!

               — Это еще почему?

               — Потому что мы, с твоим братом, по субботам кушаем утром оладушки! А сейчас не можем, потому что ты муку просыпала!

Читать далее
Total votes 196: ↑128 and ↓68 +60
Comments 520

Памятка и туториал по HTTP-заголовкам, связанным с безопасностью веб-приложений

Reading time 27 min
Views 29K


Доброго времени суток, друзья!


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


Сначала мы с вами кратко разберем основные виды уязвимостей веб-приложений, а также основные виды атак, основанные на этих уязвимостях. Далее мы рассмотрим все современные заголовки, каждый — по отдельности. Это в теоретической части статьи.


В практической части мы реализуем простое Express-приложение, развернем его на Heroku и оценим безопасность с помощью WebPageTest и Security Headers. Также, учитывая большую популярность сервисов для генерации статических сайтов, мы настроим и развернем приложение с аналогичным функционалом на Netlify.


Исходный код приложений находится здесь.


Демо Heroku-приложения можно посмотреть здесь, а Netlify-приложения — здесь.


Основными источниками истины при подготовке настоящей статьи для меня послужили следующие ресурсы:


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

Список ноотропов, покупка которых не окажется пустой тратой денег

Reading time 5 min
Views 295K

Небольшая подборка веществ помогающих нашим мозгам работать чуточку лучше. Большинство из них продается в ближайшей аптеке, отпускается без рецепта, имеют доказательную базу и плюс-минус универсальны, так как «качают» самое важное — мотивацию, энергию и память.

Читать далее
Total votes 121: ↑85 and ↓36 +49
Comments 238

Что оказалось самым важным в гарнитурах для колл-центров для самих операторов

Reading time 7 min
Views 32K

Оказалось, качество звука — это не первое, на что операторы кол-центров обращают внимание. В смысле, что, конечно, оно отличается от устройства к устройству, но всё равно во многом зависит от линии, стабильности соединения и устройства абонента, а не от того, что на принимающей стороне. 

Мы начали тестировать разные гарнитуры, потому что постепенно расширяем линейку поставляемого оборудования для заказчиков. В общем, мы взяли много образцов у разных вендоров, отдали их нашим сотрудникам и сотрудницам поддержки первой линии «ой, у меня принтер не печатает» и попросили протестировать — чтобы затем понимать, что именно можно смело рекомендовать заказчикам. 

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

Решает эргономика. И операторы выбирают то, что не сплющивает голову к вечеру. 

Читать далее
Total votes 41: ↑40 and ↓1 +39
Comments 22

Передаём файл между изолированными виртуальными машинами через побочные каналы

Reading time 11 min
Views 5.9K

Не далее пяти дней назад на хабре появилась новость под заголовком "В Apple M1 нашли уязвимость M1RACLES — возможна быстрая скрытая передача данных между приложениями". В одном предложении суть формулируется так: в Apple M1 нашли регистр, который кто угодно может читать и писать из непривилегированного режима. Значит, это можно использовать для обмена данными в обход механизмов межпроцессного взаимодействия, предоставленных ОС.

В комментариях к этой публикации развязалась умеренно оживлённая дискуссия о статусе находки: всё-таки серьёзная уязвимость или пустяк? Наряду с @SergeyMaxи @wataru я обратил внимание, что каналов скрытого обмена и так существует предостаточно просто потому, что исполняющая клиентский софт или виртуальные машины аппаратура является разделяемой средой, грамотная модуляция состояний которой делает возможным произвольный обмен данными вне зависимости от инвариантов нижележащей ОС или гипервизора. Противоположной точки зрения придерживаются почтенные господа @creker и @adjachenko, утверждая, что доселе известные побочные каналы качественно уступают возможностям M1RACLES.

Эта заметка является наглядной иллюстрацией к моему утверждению о легкодоступности скрытых каналов обмена. Я собрал простой PoC из ~500 строк на C++, при помощи которого был успешно отправлен файл из одной виртуальной машины в другую на том же физическом хосте. Далее я кратко описываю его устройство, пределы применимости, и привожу выводы и мнение самого автора M1RACLES в конце.

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

Исключения для хардкорщиков. Особенности обработки эксепшенов в динамически размещаемом коде

Reading time 13 min
Views 22K
image

Современные версии ОС налагают на исполняемый код ограничения, связанные с требованиями безопасности. В таких условиях использование механизма исключений в инжектированном коде или, скажем, во вручную спроецированном образе может стать нетривиальной задачей, если не быть в курсе некоторых нюансов. В этой статье речь пойдет о внутреннем устройстве юзермодного диспетчера исключений ОС Windows для платформ x86/x64/IA64, а также будут рассмотрены варианты реализации обхода системных ограничений.
Читать дальше →
Total votes 16: ↑16 and ↓0 +16
Comments 11

Особенности структурной обработки исключений в Win64

Reading time 11 min
Views 3.8K

В процессе перевода своих средств программирования на платформу x86-64 потребовалось перевести и встроенный интерактивный отладчик. В отличие от подключаемых отладчиков данный отладчик находится, так сказать, непосредственно «на борту» каждой исполняемой программы. При этом он имеет сравнительно небольшие размеры (около 44 Кбайт, большую часть которых занимает дизассемблер). Я так привык к этому отладчику, что уже совершенно не могу без него обходиться, и поэтому перевод в 64-разрядную среду стал настоятельно необходимым.

Однако формальный перевод с Win32 в Win64 дал такие странные результаты, что пришлось потратить много сил и времени, чтобы разобраться, почему то, что ранее работало в Windows-XP, перестало нормально работать в Windows 7. Виной всему оказалась структурная обработка исключений, практически не задействованная ранее в среде Win32.

В процессе разбирательства я прочел множество обсуждений на эту тему на компьютерных форумах. Задаваемые вопросы (и особенно ответы) показали, что многие программисты смутно представляют конкретную реализацию структурной обработки исключений в Windows 7. Поэтому кажется полезным пояснить некоторые особенности поведения системы на примере конкретной задачи, в результате чего и появилась данная статья.

Читать далее
Total votes 26: ↑25 and ↓1 +24
Comments 12

Стабилизация растений для ленивых романтиков. Ну и гиков тоже

Reading time 8 min
Views 88K

Думаю, это очень классная история, когда ты подарил цветы, а они не вянут целый год!

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

В основе стабилизации нет никакого чуда: обычные законы физики и биохимии, простые ингредиенты и широкий простор для экспериментов. Хотя у производителей остаются свои секреты.

Читать далее
Total votes 133: ↑131 and ↓2 +129
Comments 78

Мельчайшее различие

Reading time 4 min
Views 11K
В июле команда, которая занимается дизайн-системой в компании Gusto, выдала кое-что, достойное восхищения. В течение трёх месяцев мы вкладывали в дело все силы, стремясь обновить корпоративные материалы, такие, как логотипы, цвета и шрифты. Но занимались мы не только этим. Мы чувствовали, что перед нами открылась возможность улучшить каждый компонент нашей библиотеки. Мы надеялись расширить возможности проекта, убрав компоненты, дублирующие друг друга, и избавившись от технического долга. Тогда же мы начали разбираться с множеством давних проблем, касающихся доступности проекта для людей с ограниченными возможностями.



Меня уже некоторое время беспокоил дизайн наших таблиц. Я с нетерпением ждал того момента, когда смогу привести их к достойному виду.
Читать дальше →
Total votes 57: ↑54 and ↓3 +51
Comments 17

Лошадь сдохла – слезь: переход с tslint на eslint

Reading time 7 min
Views 40K
До недавнего времени во всех проектах фронта разработчики Dodo Pizza Engineering использовали tslint – полезный инструмент, который подсказывает, когда ты накосячил в коде допустил неточность, помогает поддерживать код в одном стиле и сам исправляет многие замечания. Но тут tslint взял и умер. Под катом я расскажу, почему так вышло, как перестать лить слёзы по умершему и перейти на инструмент eslint, а также покажу кое-что очень интимное.


Читать дальше →
Total votes 39: ↑37 and ↓2 +35
Comments 12

Заходят как-то два браузера в скроллбар…

Reading time 8 min
Views 29K
image Скроллбар (scrollbar, полоса прокрутки) — это простой, но эффективный механизм, который действует как основное средство, с помощью которого можно просматривать большие документы. Но это — далеко не всё, на что способны полосы прокрутки! Эти скромные рабочие лошадки ещё и неплохо подсказывают пользователям о том, каковы размеры документов, с которыми они взаимодействуют. В результате скроллбары несут на себе двойную нагрузку. Они и помогают работать с различными материалами, и информируют пользователя о размерах этих материалов.

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

Более того — программы для устройств, обладающих сенсорными экранами, популяризировали идею скрытия скроллбаров. При таком подходе скроллбары оказываются невидимыми до тех пор, пока пользователь не начнёт прокручивать элемент, не помещающийся в некую область просмотра. В результате оказывается, что ради визуальной привлекательности приложений дизайнеры жертвуют понятностью интерфейсов. Пользователю может понадобиться некоторое время на то, чтобы понять, что содержимое в некоем контейнере можно прокручивать. Такой контейнер может выглядеть так, будто прокрутку он не поддерживает, или так, будто прокрутка ему просто не нужна.

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

Материал, перевод которого мы публикуем сегодня, посвящён некоторым особенностям использования скроллбаров в веб-приложениях.
Читать дальше →
Total votes 42: ↑41 and ↓1 +40
Comments 19

Information

Rating
1,095-th
Location
Agalli, Berat, Албания
Date of birth
Registered
Activity