Как стать автором
Обновить
22
3.4
Копетан О. Я. @vanxant

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

Отправить сообщение

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

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров39K

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

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

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

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

Читать далее
Всего голосов 75: ↑74 и ↓1+73
Комментарии45

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

Уровень сложностиСложный
Время на прочтение7 мин
Количество просмотров54K

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

Читать далее
Всего голосов 112: ↑108 и ↓4+104
Комментарии332

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

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров13K

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

Читать далее
Всего голосов 64: ↑64 и ↓0+64
Комментарии46

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

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров22K

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

Нас взяли в Debian!

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

Читать далее
Всего голосов 141: ↑141 и ↓0+141
Комментарии89

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

Уровень сложностиПростой
Время на прочтение26 мин
Количество просмотров7.9K

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

Читать далее
Всего голосов 26: ↑24 и ↓2+22
Комментарии15

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

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров12K

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

Читать далее
Всего голосов 36: ↑36 и ↓0+36
Комментарии16

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

Время на прочтение10 мин
Количество просмотров2.6K

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


Читать дальше →
Рейтинг0
Комментарии1

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

Время на прочтение9 мин
Количество просмотров2.6K

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

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

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

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

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

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

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

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

Время на прочтение6 мин
Количество просмотров20K

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

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

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

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

Читать далее
Всего голосов 21: ↑14 и ↓7+7
Комментарии14

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

Время на прочтение5 мин
Количество просмотров55K

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

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

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

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

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

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

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

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

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

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

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

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

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

Читать далее
Всего голосов 196: ↑128 и ↓68+60
Комментарии520

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

Время на прочтение27 мин
Количество просмотров30K


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


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


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


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


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


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


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


Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии1

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

Время на прочтение5 мин
Количество просмотров297K

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

Читать далее
Всего голосов 121: ↑85 и ↓36+49
Комментарии238

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

Время на прочтение7 мин
Количество просмотров32K

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

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

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

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

Читать далее
Всего голосов 41: ↑40 и ↓1+39
Комментарии22

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

Время на прочтение11 мин
Количество просмотров5.9K

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

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

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

Читать далее
Всего голосов 21: ↑21 и ↓0+21
Комментарии8

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

Время на прочтение13 мин
Количество просмотров22K
image

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

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

Время на прочтение11 мин
Количество просмотров3.8K

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

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

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

Читать далее
Всего голосов 26: ↑25 и ↓1+24
Комментарии12

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

Время на прочтение8 мин
Количество просмотров89K

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

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

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

Читать далее
Всего голосов 133: ↑131 и ↓2+129
Комментарии78

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

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



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

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

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


Читать дальше →
Всего голосов 39: ↑37 и ↓2+35
Комментарии12

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

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

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

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

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

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

Информация

В рейтинге
925-й
Откуда
Agalli, Berat, Албания
Дата рождения
Зарегистрирован
Активность