Search
Write a publication
Pull to refresh
156
0
Виктор @TyVik

Full-stack developer

Send message

Ликбез по распространенным Client-Side уязвимостям

Level of difficultyMedium
Reading time15 min
Views21K


В этой статье мы покажем:


  • как в разных ситуациях манипулировать веб-сайтом таким образом, чтобы он передавал пользователям вредоносный JavaScript.
  • как скомпрометировать администратора сайта, отправив ему личное сообщение;
  • как атаковать разом всех пользователей при помощи комментария под статьей;
  • как заставить пользователя отправить запрос на действия, которые он не собирается выполнять;
  • как прослушивать WebSocket-соединения;
  • и коротко объясним, как предотвратить все эти безобразия.

В общем, под катом вас ждет рассказ про распространенные уязвимости на стороне клиента и некоторые методы Client-Side защиты.

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

Я люблю питон, и вот почему он меня бесит

Level of difficultyEasy
Reading time18 min
Views60K

Вас приветствует ваш зануда!

Если вы следите за моей ленивой активностью, то заметили бы, что у меня много от чего пригорает. Вот, например:
- У меня пригорает от низкосортных статей на потоке: Питон против Безумного Макса, или как я посты на Хабре замораживал
- У меня пригорает от Django: Окей, Джанго, у меня к тебе несколько вопросов
- И от Яндекса тоже: Собеседование в Яндекс: театр абсурда :/
- И от рекрутеров: Я единственный из 1400, или самый крутой рекрутинг, что я проходил

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

Это что же получается, kesn опять открыл postman и сломал вёрстку на сайте? Поразительно, никогда такого не было, и вот опять! В принципе, тут можно писать текст любой длины (похоже, у них на бэкенде не Char(255), а Text). Они проверяют длину только на фронтенде, а бэкенд принимает строку любой длины. И это, блин, забавно) Вообще мой девиз - 'кто ищет, тот всегда найдёт', поэтому я ищу постоянно. Кстати, на Хабре скоро выйдет статья про программирование глазами Погромиста, там в том числе про уязвимости на сайтах будет - поэтому если не хотите пропустить, то подписывайтесь на меня в телеге: @blog_pogromista

Первые шаги в Q#. Алгоритм Дойча

Level of difficultyEasy
Reading time3 min
Views6K

Алгоритм Дойча — алгоритм, разработанный Дойчем в 1985 году, и ставший одним из первых квантовых алгоритмов. В нём рассматривается функция булевая f(x) от одной переменной и требуется определить является ли она постоянной или сбалансированной.

Что нам говорит Википедия?

Алгоритму Дойча — Йожи достаточно однократного обращения к квантовому оракулу для достоверного решения задачи.

А джентельменам принято верить на слово, значит решим эту задачу, как первый опыт программирования на Q# ...

Let's hacking ...

Что происходит, когда запускаешь «Hello World» в Linux

Level of difficultyMedium
Reading time15 min
Views30K

Сегодня я задумалась о том, что происходит, когда запускаешь в Linux простую программу «Hello World» на Python.

print("hello world")

Вот как это выглядит в командной строке:

$ python3 hello.py
hello world

Но внутри происходит гораздо больше. Я объясню, что там творится, и, что гораздо важнее, расскажу об инструментах, при помощи которых вы сами сможете исследовать происходящее. Мы воспользуемся readelf, strace, ldd, debugfs, /proc, ltrace, dd и stat. Я не буду рассматривать относящиеся к Python части, только объясню, что происходит при выполнении динамически компонуемых исполняемых файлов.
Читать дальше →

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

Level of difficultyEasy
Reading time8 min
Views2.2K

У меня есть дочь. Ей исполнилось два года недавно. Когда она еще не родилась, я уже думал о том, черт побери, кругом столько всего! Когда мне было 6 (время первых осознанных воспоминаний у меня), источников информации было от силы четыре. Радио, печатная продукция, черно-белый телек и слухи от соседей по лестничной площадке. И так продолжалось долго, до 14 лет точно. Почему я в этом уверен? Да потому что ничего не изменилось. Только телек стал цветной. А вот потом появился интернет по DSL, потом широкополосный, мобильный, в кармане, в утюге и тостере. Еще 6 лет назад не было тиктока, а теперь это не просто сервис для обмена короткими видео с котиками, а платформа, которая влияет на вкусы, взгляды и мировые тренды. Тикток даже пытаются использовать как образовательную среду, но не мне его за это осуждать.

Читать далее

Зеттелькастен. Книга «Как делать умные заметки»

Level of difficultyEasy
Reading time5 min
Views25K

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

Читать далее

10 интересных научно-фантастических книг 2023 года

Reading time9 min
Views115K

К 1 сентября мы подготовили подборку из 10 НФ произведений, вышедших или планирующихся к выходу в этом году в России и которые, как нам кажется, будут интересны любителям жанра. Ведь не только же перечитывать старых добрых Брэдбери, Херберта, Стругацких или Лукьяненко? (спойлер — он тоже есть в подборке).

Сразу оговоримся — никакие рейтинги присваиваться не будут.  
1. В подборке представлены не только зарубежные, но и отечественные авторы, некоторые из них пока мало кому известны.
2. Некоторые книги могли быть написаны раньше, но в список они попали, потому что были изданы в 2023 году на русском языке (!) — это очень важный критерий. 
3. В подборку вошли только научно-фантастические книги — про классное фэнтези сделаем отдельную статью, если вам понравится формат.
4. Мы не одобряем пиратства, за исключением самиздата, если автор сам распространяет книгу бесплатно. Поэтому приводим ссылки на фрагменты книг для ознакомления, чтобы вы могли решить, нравится ли стиль автора и завязка сюжета.

Читать далее

Лучший софт для автоматизации скриншотов

Level of difficultyEasy
Reading time6 min
Views38K
Такие скриншоты присылала Таня

У нас была знакомая девушка Таня (имя изменено), которая делала скриншоты ПК только смартфоном. То есть фотографировала экран — и присылала сделанную фотографию. Всё с телефончика, очень удобно…

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

Проектируем самодельный 16-битный CPU в 2023 году

Level of difficultyMedium
Reading time14 min
Views26K

Для создания самодельного CPU требуется большое количество чипов логики. И в самом деле разумно, что для реализации регистров, счётчика команд, АЛУ и других компонентов CPU на логике TTL или CMOS действительно необходимо существенное число чипов. Но сколько конкретно?

Я попытался оптимизировать свой самодельный CPU, минимизировав количество чипов логики, чтобы ответить на вопрос: какое минимальное число интегральных схем требуется для полного по Тьюрингу CPU без CPU?

Мой ответ: для создания 16-битного последовательного CPU нужно всего 8 интегральных схем, включая память и тактовый генератор. Он имеет 128 КБ SRAM, 768 КБ FLASH и его можно разгонять до 10 МГц. Он содержит только 1-битное АЛУ, однако большинство из его 52 команд работает с 16-битными значениями (последовательно). На своей максимальной скорости он исполняет примерно 12 тысяч команд в секунду (0,012 MIPS) и, среди прочего, способен выполнять потоковую передачу видео на ЖК-дисплей на основе PCD8544 (Nokia 5110) с частотой примерно 10 FPS.
Читать дальше →

Основные ресурсы нейронных сетей для начинающих и энтузиастов

Level of difficultyEasy
Reading time4 min
Views13K

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

Ознакомиться

От «мяу» до «вау»: как коты покорили людей, а котомемы захватили Интернет

Level of difficultyEasy
Reading time14 min
Views29K

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

Необыкновенное путешествие в удивительный мир детства

Level of difficultyEasy
Reading time9 min
Views6.1K

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

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

Интересно? Тогда, как говорит Саша, «давайте пАять» (с ударением на А)!
Читать дальше →

Наблюдаемость сетевой инфраструктуры Kubernetes. Часть первая

Level of difficultyMedium
Reading time23 min
Views13K

В этой статье будут рассмотрены инструменты наблюдения за сетевой инфраструктурой Kubernetes и основные составляющие Observability/Наблюдаемости – мониторинг, журналы событий, метрики, распределенная трассировка и оповещения. Обсудим, как эти инструменты могут помочь обеспечить надежную и эффективную работу кластеров Kubernetes и запущенных на них микросервисах, а также какие преимущества и недостатки существуют при использовании этих решений.

Эта статья для DevOps, Kubernetes administrators и SRE инженеров, которым важно и интересно разобраться в том, как устроена сетевая инфраструктура Kubernetes, какое взаимодействие происходит на уровне ядра Linux и различных приложений (Go, Java, Python и т.п.); изучить две обширные технологии eBPF и OpenTelemetry, активно продвигаемые CNCF сообществом. А главное при помощи каких инструментов можно упростить принятие решений инженерам при использовании Kubernetes в своих проектах и продуктах.

Читать далее

Разбираем HTTP/2 по байтам

Level of difficultyMedium
Reading time24 min
Views42K

image


Откройте любую статью с обзором HTTP/1.1. Скорее всего, там найдётся хотя бы один пример запроса и ответа, допустим, такие:


GET / HTTP/1.1
Host: localhost

HTTP/1.1 200 OK
Date: Sat, 09 Oct 2010 14:28:02 GMT
Server: Apache
Content-Length: 38
Content-Type: text/html; charset=utf-8

<!DOCTYPE html>
<h1>Привет!</h1>

Теперь откройте статью с обзором HTTP/2 или HTTP/3. Вы узнаете о мультиплексировании запросов, о сжатии заголовков, о поддержке push-технологий, но вряд ли увидите хоть одно конкретное сообщение. Ясно, почему так: HTTP/1.1 — текстовый протокол, тогда как сиквелы к нему бинарные. Это очевидное изменение открывает дорогу ко множеству оптимизаций, но упраздняет возможность просто и доступно записать сообщения.


Поэтому в этой статье предлагаю покопаться в кишках у HTTP/2: разобрать алгоритмы установки соединения, формат кадров, примеры взаимодействия клиента с сервером.

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

Квантовые компьютеры. С точки зрения традиционного программиста-математика. Часть 3

Level of difficultyMedium
Reading time6 min
Views4.6K

В прошлой части мы рассмотрели однокубитные гейты и построили какие то элементарные программы на однокубитных гейтах. Пришло время перейти к многокубитным преобразованиям.

Квантовые гейты в случае многокубитных операций

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

Читать далее

Как на самом деле Linux выполняет запись на диск?

Reading time6 min
Views29K

Друзья мои, программисты и операторы, я бы хотел поговорить о том, как в Linux работает запись файлов.

Раньше я думал, что она устроена определённым образом, и как Джон Леннон, «I’m not the only one». Оказалось, операции записи работают совершенно иначе. То, как они работают, интересно и важно знать.

Позвольте начать с того, как я раньше думал о записи файлов.

Читать далее

Холод без электричества? Да, бывает: абсорбционный холодильник

Level of difficultyMedium
Reading time10 min
Views60K
Картинка BRGFX, Freepik

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

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

А если я скажу вам, что существует способ получения достаточно низких минусовых температур без какого-либо электропитания?
Читать дальше →

Исследуем внутренности Linux версии 0.01

Level of difficultyMedium
Reading time7 min
Views37K

Ядро Linux часто упоминают как ужасно масштабное опенсорсное ПО. На момент написания этой статьи последняя версия 6.5-rc5 состоит из 36 миллионов строк кода. Не нужно говорить, что Linux — это плод упорного многолетнего труда множества участников проекта.

Однако первая версия Linux, v0.01, была довольно маленькой. Она состояла всего из 10239 строк кода. Если исключить комментарии и пустые строки, то остаётся всего 8670 строк. Это достаточно малый объём для анализа и хорошее начало для изучения внутренностей ядер UNIX-подобных операционных систем.

Я получил удовольствие от чтения кода v0.01. Это походило на посещение Музея компьютерной истории в Маунтин-Вью — я наконец-то убедился, что легенды верны! Я написал эту статью, чтобы поделиться с вами этим восхитительным опытом.

Читать далее

Собираем и запускаем Linux-0.01 в Minix 1.5, (почти) как это делал Линус Торвальдс

Level of difficultyHard
Reading time28 min
Views13K

Я люблю старые программы, мне нравится их изучать и смотреть, как они развивались и во что сейчас превратились, или умерли, так и не дожив до сегодняшнего дня. Ещё мне нравится смотреть разные YouTube-каналы, посвящённые ретро-тематике, на которых рассказывают об истории программ, игр, игровых приставок или старых компьютеров. Хочу сказать всем этим людям «спасибо» за то, что сохраняете частичку истории технологий. И, вдохновившись их трудами, мне захотелось попробовать самому прикоснутся к истории, собрав и запустив что-то относительно старое, но до сих пор живущее и развивающееся. Мой выбор пал на первую версию Linux, а именно версию 0.01.

Те, кто знаком с ранними днями создания Linux, знают, что Линус Торвальдс писал её для компьютеров на основе 386-х процессоров в пропатченной версия Minix 1.5.10. И не смотря на то, что linux-0.01 собирали не раз, в том числе и на современных версиях компилятора, мне хотелось побыть хоть немного в шкуре самого Линуса и самому собрать ядро в родной для этой ОС среде. А именно на максимально близком, хоть и виртуальном аппаратном обеспечении, в настоящей Minix 1.5.10 (точнее, Minix-386) с древней версией GCC 1.37.1

17 сентября ядру Linux исполнится 32 года. Это прекрасный повод вспомнить, как всё начиналось…

Читать далее

Как воспитать в своей семье юного инженера и не разориться?

Level of difficultyEasy
Reading time8 min
Views21K

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

Короче, слушайте

Information

Rating
9,267-th
Location
Краснодар, Краснодарский край, Россия
Date of birth
Registered
Activity

Specialization

Backend Developer, Software Architect
Lead
Python
PostgreSQL
Linux
Docker
Kubernetes
RabbitMQ
Elasticsearch