Pull to refresh
2
0
Send message

Экспериментальная разработка эксплойта для Use-After-Free

Reading time11 min
Views6.8K

Пошаговая реализация эксплойта для уязвимости CVE-2021-23134, включая описание используемых для этого инструментов. Это мой первый опыт разработки эксплойта для ядра – так что здесь вы вполне можете заметить некоторые ошибки, за которые я заранее извиняюсь.
Читать дальше →

Резервное копирование без лишних затрат

Reading time11 min
Views25K

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

Как создать систему резервного копирования за очень дешево, а лучше всего вообще бесплатно?

Что хочется получить от системы резервного копирования?

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

Читать далее

Европейские альтернативы американским интернет-сервисам

Reading time8 min
Views17K

Зашифрованное хранилище файлов CryptDrive.cz (Чехия)

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

Например, в начале 2022 года популярный инструмент Google Analytics уже запретили к использованию в трёх странах Евросоюза. Чего нам ожидать дальше? Простая экстраполяция:

  • Во-первых, остальные страны ЕС запретят Google Analytics.
  • Во-вторых, они запретят другие американские сервисы.
  • В-третьих, действия ЕС скопируют некоторые государства «догоняющего развития» вроде РФ. Хотя необязательно эти государства думают о правах граждан. Просто считают их (граждан) своей собственностью по праву владения.
Читать дальше →

Как уйти с государственной службы и остаться в живых

Reading time4 min
Views82K

"И как же ты это представляешь? А кто будет за тебя работать? Ты же предаёшь семью" - это первые слова моего руководителя на фразу о возможном уходе.

Здравствуйте, меня зовут Михаил, и я бюджетник. Программист, который смог вырасти от простого джуна-программиста до начальника отдела разработки ИС. К такому долгому карьерному росту я шёл целых 8 лет, благодаря которым я нашёл несколько хороших друзей и приятелей, классный коллектив, да и просто вырос от зеленого студента до руководителя (наверное даже очень неплохого). При этом было много НО. Именно о таких НО и пойдёт речь.

Читать далее

Почему моё приложение при открытии SVG-файла отправляет сетевые запросы?

Reading time8 min
Views16K

0923_SVG_XXE_ru/image1.png


Вы решили сделать приложение, работающее с SVG. Набрали библиотек, запаслись энтузиазмом, и в итоге всё удалось. Но вот незадача! Внезапно вы обнаруживаете, что приложение отправляет странные сетевые запросы. Кроме того, с хост-машины утекают данные. Как же так?

Читать дальше →

7 распространенных ошибок в SQL-запросах, которые делал каждый (почти)

Reading time6 min
Views94K

Сегодня SQL используют уже буквально все на свете: и аналитики, и программисты, и тестировщики, и т.д. Отчасти это связано с тем, что базовые возможности этого языка легко освоить. 

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

Кстати, иногда такая же участь постигает и специалистов более высокого полета. 

Сегодня мы решили собрать 7 таких ошибок в одном месте, чтобы как можно меньше людей их совершали.

Читать далее

Как мы переучивали поддержку разговаривать по-человечески, и что получилось

Reading time9 min
Views30K


Поддержка разговаривала с пользователями сухо, коротко и официально. Пользователи обижались. Например, вот:
Клиент: Привет, как поднять VPN на сервере?
Поддержка: Ваш сервер в порядке, мы не занимаемся серверным администрированием [закрывает тикет].

Поддержка права? Права. Но клиент обиделся. Потому что можно было то же самое написать нормально:
Клиент: Привет, как поднять VPN на сервере?
Поддержка: Добрый день! Я не могу помочь вам настроить VPN, потому что мы оказываем поддержку только в случае, если что-то не работает на нашей стороне. Но у нас есть статья в базе знаний, как просто поднять VPN. Спасибо за обращение [закрывает тикет].

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

Мы стараемся давать максимум технических вещей за минимум денег, и поддержка традиционно оставалась за бортом: она дорогая в расчёте на стоимость месячного тарифа VDS. Но оказалось, что можно поменять многое довольно дёшево. Мы и поменяли. И протестировали. Ниже — несколько основных вещей:

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

Как я искал пацанский движок для блога

Reading time8 min
Views46K


Я много пишу в интернетах и мне захотелось завести свой личный стэндалон блог, куда можно писать мелкие заметки и статьи, не подходящие для других площадок. Главная проблема личного блога — мне лень оформлять посты. Чтобы черкануть пару строк в каком-нибудь Wordpress, нужно слишком много телодвижений. Я попробовал несколько разных движков и каждый раз ловил себя на ощущении, что мне не хочется ими пользоваться, намного быстрее и проще писать в записную книжку вроде Evernote или Notion. Так я стал искать идеальный движок для блога, отвечающий всем моим потребностям.

Мои требования к идеальному движку:


  • Желательно self-hosted — я пережил много закрытий сервисов, от narod.ru до google+ и точно знаю, что рано или поздно все протухает, поэтому надежнее всего держать контент у себя. Также посты могут удалять по каким-то фейковым жалобам или по DMCA, как это происходит на Medium и LiveJournal.
  • Возможность подключения своего домена — мне нужен сайт-визитка со всеми проектами и ссылками в одном месте, где можно разместить портфолио, резюме, контакты.
  • Минимум телодвижений и интерфейса — в идеале интерфейса CMS вообще не должно быть видно, админская панель не нужна, посты должны редактироваться, создаваться и просматриваться в одном месте.
  • Полноценный WYSIWYG редактор — поддержка разметки Markdown и обработка её в реальном времени, подсветка кода, вставка картинок из буфера обмена.
  • Нормальные комментарии — возможность оставлять анонимные комментарии и авторизовываться через максимум соц. сетей для персонифицированных комментариев.
  • Минималистичный внешний вид — я не хочу заниматься версткой и темами, подходящее оформление должно быть из коробки.


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

Выявление реальных IP-адресов пользователей сети «Tor» через искажённый кэш

Reading time4 min
Views26K
image

Данная статья описывает пример практического применения атаки «искажение кэша через 301 редирект», которая может быть использована выходным узлом сети «Tor» с вредоносным кодом для выявления реальных IP-адресов выбранных пользователей.

Как я решил стать трейдером и проигрался, а потом отыгрался, потому, что я программист. Мой опыт

Reading time10 min
Views171K


Таким я себя видел в своих мечтах. Freepik


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


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

Читать дальше →

Сканирование на уязвимости: обзор продуктов, которые есть на рынке

Reading time7 min
Views59K

Aloha всем хабравчанам! Я Влад, системный администратор Cloud4Y. В этой статье расскажу, как мы выбирали продукт сканирования на уязвимости, почему важно контролировать, какие сервисы доступны извне и зачем необходимо проводить постоянный аудит состояния сети. Чай, кофе, па-а-а-аехали!

Читать далее

О практической пользе transformer для торговли на бирже

Reading time24 min
Views6.3K

Многие datascientists, желающие использовать ML на финансовых рынках, прочитали толстые книжки об инвестировании, может даже создавали модели с учетом прочитанного. И наверняка знают как правильно оценить полученные модели с точки зрения ML. Разобраться с этим необходимо, чтобы не было мучительно больно, когда прекрасная модель на бумаге, превращается в генератор убытков при практическом использовании.

Читать далее

Обход блокировок WireGuard в Египте

Reading time5 min
Views64K

В 2021 году VPN протокол WireGuard стал настолько популярен в Египте, что удостоился чести пополнить список заблокированных, несказанно “обрадовав” не только клиентов Cloudflare Warp+, Mullvad Wireguard и других коммерческих VPN-провайдеров, но и некоторых пользователей корпоративных VPN. Предварительные исследования показали, что по всей видимости DPI нацелен на WireGuard Handshake Initiate пакеты, которые имеют фиксированный размер (148 байт) и узнаваемую структуру (первые четыре байта UDP пакета [0x01, 0x00, 0x00, 0x00]). Мы постараемся разобраться с особенностями работы DPI по блокировке WireGuard и попробуем ее обойти. Кого заинтересовал - добро пожаловать под кат.

Читать далее

Домашний веб-сервер для чайников

Reading time14 min
Views349K

Привет, Хабр! Относительно недавно после пары лет перерыва в айти, потраченных на изучение японского языка, мне пришлось срочно обновлять свои знания на работе. Ну знаете, искать возможности исполнить все хотелки начальника, как и положено эникею. Меня ждало много увлекательных открытий, но при этом, как водится, и немало боли и борьбы с непонятками. Docker, контейнеры, реверс DNS и реверс прокси, получение TLS сертификатов. В какой-то момент я наконец дошёл до удобного решения, которым я теперь хочу поделиться.

В своё время домашний сервер очень облегчил бы мне понимание Docker’а, да и удобство работы с ним неслабо бы повысил. Поэтому возникла идея написать эту статью, после прочтения которой любой человек даже с поверхностными знаниями в информационных технологиях сможет поставить себе постоянно доступный домашний сервер на базе Docker Swarm с удобной веб-мордой, простым получением TLS-сертификатов и Heroku-подобным функционалом (для чего будем использовать PaaS CapRover). 

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

Читать далее

Создание favicon для сайта 2020

Reading time10 min
Views146K

Что такое favicon и для чего он нужен?


Favicon – это значок (иконка), который отображается во вкладке браузера, закладках, а также в сниппетах результатов поиска.

image

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

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

Какой формат использовать для favicon?


Раньше в качестве основного формата использовали ICO. Особенность данного формата – мульти-размерность. Данный файл может хранить в себе несколько размеров иконки. На смену ICO пришел формат PNG. ICO все еще поддерживаемый, но большинство современных браузеров выбирают PNG формат иконки, который легче. Некоторые браузеры не могут выбрать правильный значок в файле ICO, что приводит к неправильному использования значка с низким разрешением.

О каких платформах пойдет речь в этой статье?


  • Десктопные браузеры
  • Chrome на Android
  • Иконка закладки в iOS (PWA)
  • macOS
  • Windows

Читать дальше →

Заговор молчания: за что издатели так ненавидят эмуляторы консолей?

Reading time17 min
Views24K

Вопреки расхожему заблуждению, создание и использование эмуляторов игровых приставок вовсе не является пиратством. Более того, мировая судебная практика как раз выступает на стороне поклонников ретрогейминга: до настоящего времени еще ни одно разбирательство против разработчиков эмуляторов не заканчивалось в пользу крупных корпораций, а в США, благодаря прецедентному праву, эмуляцию как таковую и вовсе легализовали. И тем не менее платформодержатели, крупные издатели и ангажированные представители игровой журналистики с завидной регулярностью напоминают геймерам о том, что эмуляторы — главные пособники пиратов, а их использование аморально и противозаконно. В чем же причина подобной неприязни? На первый взгляд, ответ лежит на поверхности, однако на самом деле не все так просто.

Раскрыть заговор!

Мой новый домашний сервер, часть 2: выбор софта

Reading time10 min
Views82K
Вторая часть истории про мой новый домашний сервер — о выборе софта на замену старой системе. Что было, что хотелось получить и что было выбрано в итоге.


Картинка же повествует о том, что любое облако — это чужой компьютер. Это к вопросу о том, что «не нужны никакие домашние сервера, давайте всё хранить в облаках».

Было

Стоял простой Windows Server. В целом, не было ничего такого, для чего нужен был бы конкретно сервер — вполне подошла бы и десктопная Windows. Но у меня была свободная лицензия сперва на 2008, потом на 2012 обломилась — так что грех было не использовать. Потом, правда, поставил 2019 потестировать — и до сих пор тестировал. Хотя вполне мог бы и обратно на 2012 откатиться, ничего не потерял бы. А новые возможности 2019 можно было бы и в виртуалке смотреть. Ну или вообще на работе, благо он есть в продакшне.
Читать дальше →

Как мы отказались от JPEG, JSON, TCP и ускорили ВКонтакте в два раза

Reading time24 min
Views171K

На протяжении всей жизни мне приходится экономить вычислительные и сетевые ресурсы: сначала были компьютеры с 300 кГц (кило — не гига!) и 32 Кбайт RAM, интернет по dial-up. Потом я решал олимпиадные задачки. Теперь имею дело с терабайтами трафика и 50 млрд событий в сутки. И хотя современные телефоны в 1 000 раз мощнее любого оборудования двадцатилетней давности, я до сих пор оптимизирую. Думал даже, что это со мной что-то не так. Но потом понял, что все постоянно что-нибудь оптимизируют. 

Эта статья в меньшей степени о том, почему нужно бороться за производительность, и в большей о том, на что сейчас стоит заменить устаревший стек из JPEG, JSON, gzip и TCP — и как это сделать. 

Спойлер: у нас есть решение и мы его не только показываем — ссылки на open source в конце статьи.

Читать далее

Функции в скриптах Роутер ОС Микротик. Интересные решения и недокументированные возможности

Reading time32 min
Views25K
Роутер ОС Микротик, как известно, имеет мощнейший LUA-подобный встроенный скриптовый язык, позволяющий осуществлять исполнение сценариев, в том числе при наступлении каких-либо событий в сети или по расписанию. Скрипты могут состоять из одной строки кода или иметь внушительные размеры, при передаче управления друг другу формируя сложные программы. Встроенный скриптовый язык существенно расширяет возможности системы, практически не ограничивая полет фантазии программиста. Существующее официальное руководство по скриптам написано кратко и, разумеется, не может охватить все особенности программирования для Роутер ОС.

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

Перед прочтением статьи, пользователям, начинающим изучать скрипты, рекомендую ознакомиться с официальным руководством Микротик по скриптам по ссылке выше, либо с его переводом (например, здесь). Следует знать типы переменных в скриптах Микротик, иметь понятие об областях видимости, окружении переменных и т.д… Также будет весьма полезна статья habr.com/ru/post/270719, в которой автор подробно разбирает типы переменных LUA Микротик и варианты их объявления и использования.
Читать дальше →

10 тревожных сигналов на собеседованиях разработчиков и как с ними поступать

Reading time8 min
Views67K
Объявление о вакансии выглядит отлично — интересная компания, современный стек, никакого легаси и бюрократии. Вот он — вызов, который вы с радостью готовы принять. Но когда начинается первое собеседование, у вас возникает странное чувство тревоги… или, что еще хуже, вы думаете, что собеседование проходит нормально, пропускаете всевозможные тревожные сигналы, и в итоге работаете в действительно неудачном месте.
Некоторые из этих тревожных сигналов собеседования применимы к любому человеку в любой карьере: например, интервьюер, который груб с вами, или который забыл забронировать помещение для собеседования.

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


Приятного чтения!

Information

Rating
5,105-th
Registered
Activity