Pull to refresh
34
0
Василий Е @bazilxp

DevOps

Send message

OWASP ZAP — поддержка Session Management на основе заголовков

Reading time3 min
Views2.4K

Все, кто связан со сферой Application Security / DevSecOps, так или иначе слышали или даже применяют продукт OWASP ZAP. Данное приложение представляет из себя open source-инструмент для динамического сканирования веб-приложений (DAST). Но мало просто запустить сканирование приложения инструментом, надо суметь его правильно настроить.

Одним из важных этапов настройки DAST-сканирования является авторизация в приложении, а также поддержка сессии в течение всего сканирования. Чтобы настроить авторизованные сканирования на ZAP, необходимо учесть три вещи:

1. То, как сделать запрос аутентификации. ZAP поддерживает следующие варианты: на основе отправки формы, JSON-данных, HTTP/NTLM-аутентификацию, аутентификацию на основе скрипта, вручную.

2. То, как происходит обработка сеанса в приложении. Другими словами, как ZAP будет поддерживать отправку авторизованных запросов к приложению в течение сканирования. На данный момент есть поддержка сессии на основе cookie, заголовка, с использованием скрипта и поддержка сессий на основе HTTP-аутентификации. О поддержке сессии на основе заголовка мы и поговорим в данной статье.

3. То, как определяется, аутентифицированы ли запросы от ZAP (настройка стратегии проверки). ZAP умеет отправлять запрос на определенный URL для сравнения полученного ответа с его авторизованной версией, либо производить подобную проверку на каждый запрос.

Ранее для управления сессией сканирования через заголовки приходилось использовать скрипты в самом ZAP, например ZEST, JavaScript или Python.

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

Игры для обучения программированию

Reading time6 min
Views28K

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

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

Соответствующие способности можно развить, а интеллект — повысить в рамках генетически заданного широкого коридора. Это возможно в любом возрасте. Лучше всего с детства, хотя и взрослым ничто не мешает… Проще всего начинать с игр.
Читать дальше →
Total votes 51: ↑51 and ↓0+51
Comments24

Как установить лицензионную защиту кода на Python и обезопасить данные с помощью HASP?

Reading time6 min
Views12K

Всем привет, я Вячеслав Жуйко – Lead команды разработки Audiogram в MTS AI.

При переходе от On-Cloud размещений ПО на On-Premises в большинстве случае перед вами неизбежно встанет задача защиты интеллектуальной собственности – и она особенно критична для рынка AI, где задействуются модели, обладающие высокой ценностью для компании. К тому же, в этой сфере широко используется интерпретируемый язык Python, ПО на котором содержит алгоритмы, являющиеся интеллектуальной собственностью компании, но фактически распространяется в виде исходных кодов. Это не является проблемой для On-Cloud решений, но в случае с On-Premises требует особой защиты как от утечек кода, так и самих данных.

Рассказываю реальную историю решения этой, казалось бы, не самой тривиальной задачи. Итак, обо всем по порядку.

Читать далее
Total votes 12: ↑11 and ↓1+14
Comments17

Разбираем алгоритмы компьютерной графики. Часть 5 – Анимация «Shade Bobs»

Reading time4 min
Views3.8K

Алгоритм, который рассмотрим сегодня, не имеет нормального названия. Иногда его называют "Shade Bobs", а вообще это один из многочисленных алгоритмов генерации "плазмы". Когда что-то на экране видоизменяется и переливается.

Из множества алгоритмов "плазм", представленный экземпляр самый элементарный.

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

История телепортации в андроиде

Reading time3 min
Views9.1K

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

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

Кстати, если вы знаете еще способ, как можно было всего этого избежать, то напишите, пожалуйста.

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

11 лучших шрифтов для программирования

Reading time3 min
Views267K
Много статей и сайтов сравнивают шрифты для программирования — всё это отличные ресурсы. Так зачем я опять поднимаю эту тему? Потому что сам всегда терялся в десятках шрифтов и не мог понять, какой лучше. Так что я опробовал много шрифтов и выбрал следующие для вас. Они довольно популярны и их легко получить. И самое главное, все эти шрифты бесплатны!

Я ранжировал шрифты по следующим показателям:

  • Насколько различимы схожие символы, такие как 0O, 1lI.
  • Легко ли читается шрифт (ширина строк, ширина/высота символов).
  • И мои личные предпочтения!

Все скриншоты сделаны в VSCode на одном фрагменте кода. Если не обозначено иное, то везде установлен размер "editor.fontSize": 14.
Читать дальше →
Total votes 56: ↑54 and ↓2+52
Comments117

Парсинг для взрослых или Инфраструктура для промышленного парсинга

Reading time7 min
Views18K

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

Читать далее
Total votes 12: ↑8 and ↓4+5
Comments12

Установка шрифтов Groff

Reading time6 min
Views4.1K

Здравствуй, Хабр!

Русские шрифты в Groff, пошаговая инструкция по установке. Groff - небольшой и очень-очень винтажный программный пакет, в каком-то смысле прадедушка TeX, LaTeX. Но если TeX создан Дональдом Кнутом, то Брайан Керниган приложил немало усилий для развития концепций Troff. Итак, две легенды и две дороги.

Конечно, сегодня программы troff (GNU версия называется по традиции groff) применяют в основном для форматирования man-страниц, но возможности процессора намного шире.

,,,

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

Подсчет количества пар товаров в продуктовых чеках с помощью трех инструментов: Python, Spark, SQL

Reading time6 min
Views6.1K

Добрый день, уважаемые читатели! Не открою для большинства секрета, если скажу, что большая часть задач в материалах к учебным курсам сформулирована шаблонно. Какие-то вопросы в принципе могут представлять интерес, но очень оторваны от реальных потребностей бизнеса. Какие-то моменты выдернуты из книг, поэтому лучше знакомиться с ними, читая первоисточник. Но есть кейсы, которые на первый взгляд хоть и кажутся простыми и стереотипными, но, если присмотреться к ним более пристально, могут дать пищу для размышления. Вот на одной из таких полезных задач мне хотелось бы заострить внимание в данной заметке. Формулируется вопрос следующим образом: «Необходимо определить количество пар товаров в продуктовых чеках. Вывести 10 самых частых сочетаний». Пример, чек 1 содержит товар 1, товар 2, товар 3, а чек 2 -  товар 1, товар 2, товар 5. Следовательно, комбинация «товар 1, товар 2» встречается 2 раза, «товар 1 , товар 3» один раз и т.д.

В исходнике решать данный кейс предлагалось силами Python. Но реальная жизнь может потребовать от аналитика данных умения выполнять данное упражнение как с помощью SQL, так и Spark. Следовательно, рассмотрим три подхода, оставив за скобками разговора четвертый вариант – расчеты на платформах BI.

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

Ленивый деплой Django проекта UWSGI + NGINX (UBUNTU 20.04)

Reading time3 min
Views19K

Здравствуйте!

Хочу представить вам пошаговую инструкцию по деплою django проекта.

Сразу скажу, что используя мою краткую инструкцию вы не поймете механику развертывания. По сути, это просто список команд для деплоя. Тут не будет никаких подробностей касательно работы UWSGI, NGINX и самого Django. Я просто помогу быстро добраться до цели, а цель у нас одна - задеплоить уже наконец этот **** проект!

Читать далее
Total votes 18: ↑5 and ↓13-5
Comments15

Использование двух редакторов анимаций в игровом проекте

Reading time14 min
Views3.5K

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

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

Модифицируем процесс загрузки с помощью утилиты make-initrd

Reading time18 min
Views31K

В этой статье мы хотим помочь глубже разобраться, как устроен процесс загрузки Linux, дать советы по реализации сложных сценариев загрузки Linux, а также познакомить с удобным и быстрым генератором initramfs образов - make-initrd.

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

Создаём анимационные обучающие видео на Python с помощью Manim

Reading time33 min
Views12K
Привет! Меня зовут Константин Мохов, я тимлид, который однажды прошёл курс Практикума по аналитике данных, по большей части для собственного развития. Тема создания анимированных видео на Python заинтересовала меня позже, когда в телеграм-канале Алексея Макарова из Практикума появилось сообщение, что его команде нужна помощь с анимацией. Мне захотелось попробовать создать интересное и наглядное обучающее видео, раскрывающее одну из тем курса, например, гистограммы.

Я углубился в изучение вопроса и перечитал немало статей на тему создания анимации «как у 3Blue1Brown», которые в основном были либо переводами, либо копией оригинального туториала Гранта Сандерсона. Грант создал и выложил в открытый доступ специальную библиотеку на Python — Manim, которая предназначена для создания анимации. В роликах, запрограммированных с помощью Manim, он объясняет математические темы на своём YouTube-канале.

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


А теперь поехали!
Total votes 10: ↑9 and ↓1+11
Comments5

Как при помощи ИИ сделать распознавание вводимых вами рукописных цифр прямо в браузере

Reading time9 min
Views5.8K

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

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

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

Делаем OpenVPN клиент для iOS

Reading time5 min
Views13K
Привет всем!
Давайте рассмотрим как создать собственное приложение, поддерживающее OpenVPN-протокол. Для тех, кто об этом слышит впервые ссылки на обзорные материалы, помимо Википедии, приведены ниже.

С чего начать?


Начнем с фреймворка OpenVPNAdapter — написан на Objective-C, ставится с помощью Pods, Carthage, SPM. Минимальная поддерживаемая версия ОС — 9.0.
После установки необходимо будет добавить Network Extensions для таргета основного приложения, в данном случае нам понадобится пока Packet tunnel опция.

image

Network Extension


Затем добавляем новый таргет — Network Extension.
Сгенерированный после этого класс PacketTunnelProvider приведем к следующему виду:
Читать дальше →
Total votes 3: ↑3 and ↓0+3
Comments5

Мы Опубликовали Качественный, Простой, Доступный и Быстрый Синтез Речи

Reading time9 min
Views66K

fiona


Вторая частьhttps://habr.com/ru/post/563484/


Вокруг темы синтеза речи сейчас много движения: на рынке есть огромное число тулкитов для синтеза, большое число закрытых коммерческих решений за АПИ (как на современных технологиях, так и на более старых, т.е. "говорилки") от условных GAFA компаний, большое количество американских стартапов, пытающихся сделать очередные аудио дипфейки (voice transfer).


Но мы не видели открытых решений, которые бы удовлетворяли одновременно следующим критериям:


  • Приемлемый уровень естественности речи;
  • Большая библиотека готовых голосов на разных языках;
  • Поддержка синтеза как в 16kHz так и в 8kHz из коробки;
  • Наличие своих собственных голосов у авторов решения, не нарушающих чужие права и лицензии;
  • Высокая скорость работы на "слабом" железе. Достаточная скорость работы на 1 потоке / ядре процессора;
  • Не требует GPU, команды ML инженеров или какой-либо дополнительной тренировки или для использования;
  • Минимализм и отсутствие зависимостей / использование в 1 строчку / не надо ничего собирать или чинить;
  • Позиционируется именно как готовое решение, а не очередной фреймворк / компиляция чужих скриптов / тулкитов для сбора плюсиков;
  • Решение никак не связано и не аффилировано с закрытыми экосистемами и продуктами Гугла / Сбера / Яндекса / вставить нужное;

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

Total votes 205: ↑205 and ↓0+205
Comments229

LIVENESS DETECTION — проверка идентификатора на принадлежность «живому» пользователю

Reading time4 min
Views2.2K

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

Датасет можно скачать по ссылке.

Для обучения в датасете  есть 4 подкласса.

Читать далее
Total votes 3: ↑1 and ↓20
Comments0

Что случилось с фотостоками? Старожилы вытеснили новичков? Точка входа

Reading time4 min
Views24K


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

Личный опыт присутствует, ибо по сей день что-то лениво гружу на продающие площадки. Об этом и многих интересных тонкостях мы и поговорим далее.
Читать дальше →
Total votes 51: ↑45 and ↓6+56
Comments26

О талантах, деньгах и алгоритмах сжатия данных

Reading time16 min
Views47K


Алгоритмы сжатия — это очень коварная тема, привлекающая многих новичков. Это правда! Часто человеку кажется, что его осенила божественная идея, как сильно сжать данные. Любые, кстати! Без потерь! Рекурсивно! А поскольку данные — это хранение информации и передача, то если хотя бы на единицы процентов результат улучшить — это миллиарды долларов (смотрим экономию всех провайдеров на передаче и хранении, всех дата-центров компаний, всех домашних пользователей, перемножаем… аж дух захватывает)! И люди пишут письма:
«Обращаюсь к вам, как «создателю и демиургу проекта ;) compression». Мной придуман алгоритм, основанный на простом рассуждении – если файл условно несжимаемый, есть вероятность что, часть файла имеет избыточность и файл можно сжать частично. …» 
«Обращаюсь к Вам, как к одному из главных специалистов в области сжатия информации. Предлагаю Вам ознакомиться с изобретением в области сжатия информации. [...] По мнению автора, основным достоинством данного «Способа кодирования информации» является способность одинаково хорошо сжимать без потери качества информацию любого типа (видео, аудио, текст, архив и т.д.). Помимо этого «Способ» позволяет проводить процесс кодирования (сжатия) повторно....» 

Бывает даже так:
«Мне, для начала, нужно 30–60 минут общения с Вами по Скайпу.
Вопрос: каково Ваше вознаграждение и куда его отправить?» 

И если вы думаете, что обращения типа последнего — мои любимые, то реакция ровно обратная («Боже, дай мне терпения!»). Ибо по опыту в последнем случае люди наиболее настойчивые… Кстати, это могут быть не только авторы, но и инвесторы, о которых ниже тоже будет. 

Кому интересно, в чем же таки коварство алгоритмов, есть ли у нас таланты, и где же, наконец, деньги — добро пожаловать под кат! (Талантливые авторы алгоритмов могут сразу переходить в раздел «Про деньги»).
Читать дальше →
Total votes 155: ↑151 and ↓4+203
Comments170

Одностраничный устав ООО с двумя директорами электронно и открытие счёта в банке дистанционно

Reading time6 min
Views14K

Надоело заморачиваться с доверенностями, банками, судами, госорганами и решили прописать в Устав второго директора. Плюс заодно избавиться от дурацкого большого устава давно было желание, чтобы не копировать толстый устав на тендеры и крупным заказчикам. Но коллеги говорили, что будет не солидно, возникнут вопросы при рассмотрении устава юристами контрагентов, которые должны оправдывать свою зарплату. И всё как-то не решались. Но год назад решились. Сделали одностраничный устав. Кстати, в поиске в Яндекс.Картинках не нахожу одностраничного устава в электронном виде. Наш первый значит будет. Год прошёл — полёт нормальный, проблем нет. Солидность не пострадала. Банк устав принял, второго директора признал. Хотя тупил страшно. Дальше о том, что должно быть в одностраничном Уставе, какие трудности были с регистрацией в налоговой и с банком. Мы всё хотели сделать принципиально в электронном виде и удалённо.

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

Information

Rating
Does not participate
Location
Chengdu, Sichuan, Китай
Registered
Activity