Программирование для ИБ

Статья Кодирование/декодирование изображений и документов в формат base64 с помощью Python

  • 5 999
  • 0
Все, кто пользуется интернетом, так или иначе сталкивались с изображениями в формате base64. Но, обычно для пользователя это «столкновение» происходит незаметно, даже если он сохраняет такую картинку себе на жесткий диск. Браузер сам проводит необходимое декодирование. Другое дело, если вы используете какой-либо скрипт. В этом случае, перед сохранением изображения, его нужно декодировать. И тут уже задача полностью ложится на код и его возможности. Давайте посмотрим, как можно декодировать изображения в формате base64 с помощью Python, а также попробуем кодировать документы других типов, отличные от изображений.

000.png

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

Статья Перехват запросов с веб-страницы с помощью selenium и browsermobproxy в Python

  • 11 462
  • 14
На поиск решения для данной статьи меня натолкнул вот этот вопрос пользователя (Статья - Немного об IPTV или проверка m3u с помощью Python. Часть 01). Изначально я подумал, что он просто не может найти ссылку, которая улетает в запросах для загрузки файла. Но, как оказалось, ему нужно не совсем это. А необходимо получать ссылку, в его случае это ссылка на загрузку плейлиста, в автоматическом режиме. Таким образом, использование инструментов разработчика автоматически отпало. Я покопался в интернете и нашел ответ на этот вопрос, который и послужил толчком для написания этого кода на Python.

000.jpg

А дело здесь вот в чем. Имеется определенный сайт с онлайн-трансляциями различных каналов. Но, сервера постоянно меняют ссылки на потоки. А соответственно, так как пользователь хотел получить свежую ссылку, ее...

Змея в пакете. Создаем TLS соединение на Python

  • 7 797
  • 1
Logotype.jpg

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

План работы

Перед тем как перейти к работе, следует набросать план, по...

Статья Парсинг страницы с треками, формирование плейлистов и использование mutagen для чтения метаданных аудиофайлов в Python

  • 5 953
  • 1
Давайте сегодня займемся парсингом, а заодно посмотрим, как работает библиотека для извлечения IDv3 тегов из аудиофайлов. Парсить будем сайт, с которого можно бесплатно скачать музыкальные треки. Скажем так, совместим приятное с полезным. Попрактикуемся немного в парсинге, а заодно скачаем себе несколько треков, для прослушивания локально. Ну или не совсем. Давайте посмотрим, как это сделать с помощью Python.

000.png

Предыстория у создания этого скрипта простая. Захотелось послушать музыку. Слушать в браузере не хотелось. Тем более, что мне понравился консольный медиаплеер mpv. Шустрый и легкий. Я и подумал, а почему бы мне не найти сайт, забрать оттуда ссылки на треки, сделать плейлист, а потом слушать эти треки в плеере? Так я и сделал. Заодно добавил возможность скачивать эти треки и делать плейлист уже из загруженных локальных файлов.

На самом деле, простейший плейлист сделать совсем несложно. Нужно создать файл с...

Статья Используем двухэтапную (двухфакторную) аутентификацию в Python

  • 6 878
  • 0
Двухфакторную аутентификацию в том или ином виде используют уже довольно давно. Изначально, данный способ предусматривал аутентификацию с помощью SMS-кода. Однако, такой способ не является достаточно надежным, поэтому с некоторых пор стали использовать аутентификацию на базе одноразового пароля. Не обязательно он должен отправляться на смартфон клиента. Возможны и другие решения. Давайте рассмотрим способ реализации аутентификации такого рода с помощью Python.

000_0.png

Для создания небольшого демонстрационного приложения мы будем использовать библиотеку, которая как раз и предназначена для создания и валидации одноразового пароля. В англоязычном варианте такая аутентификация называется OTP, то есть, аббревиатура от слов one time password. Так как этот пароль одноразовый, то действует он только лишь в течении одного сеанса аутентификации. Также, действие пароля ограничено определенным промежутком времени. В нашем случае...

Статья Создание меню выбора клавишами в терминале с помощью Python

  • 9 059
  • 4
Когда мы пишем какое-то консольное приложение подразумевающее пользовательский выбор, хорошо было бы иметь такой инструмент, который бы создавал нужное нам меню и позволял перемещаться по нему с помощью стрелок на клавиатуре. Ведь это гораздо удобнее, чем просить пользователя ввести какую-либо цифру, соответствующую тому или иному пункту. И такой инструмент есть. Давайте посмотрим, как его реализовать в скрипте Python.

000.png

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

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

Статья Немного об IPTV или проверка m3u с помощью Python. Часть 02

  • 16 709
  • 25
Это вторая часть статьи о проверке плейлистов на работоспособность. Небольшие пояснения для тех, кто не читал первую часть. В прошлой статье мы создали небольшие инструменты для обработки плейлистов. Такие скрипты как: разбиение плейлиста на части, объединение, сортировка по именам каналов. А также проверка плейлистов с помощью плеера VLC. В этой же части я попробую рассказать, как я пытался сделать чекер и, что из этого получилось.

000_01.png

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

Статья Определение типа файла по его сигнатуре с помощью Python

  • 8 012
  • 0
Вполне возможно, что при разработке приложений вам может понадобиться определение типа файла. И не всегда тип файла можно узнать по расширению. Если в ОС Linux это не составляет больших проблем, так как данная операционная система распознает тип файла не по расширению, а по содержимому, то вот в Windows отсутствие расширения иногда вызывает множество вопросов. Давайте попробуем понять, как можно определить тип файла с помощью Python.

68416866.jpg

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

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

Статья Пишем шифровальщик на python ч1

  • 1 809
  • 4
Unlock.jpg

Введение

Приветствую всех!

Во время активного изучения python, я нарвался на книгу "Black Hat Python: программирование для хакеров и пентестеров 2-е издание Джастин Зейтц, Тим Арнольд". И там рассматривалось написание шифровальщика с использованием гибридного шифрования, используя лучшие качества симметричной и асимметричной криптографии. AES - это алгоритм симметричного шифра. Симметричным его делает то, что для шифрования и расшифровки применяется один и тот же ключ. Он очень быстрый и способен справляться с большими объемами текста.

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

Мы задействуем RSA...

[Selenium] Взаимодействие и регистрации аккаунта. Part ⅠⅠ

  • 5 797
  • 1
selenium.png

Приветствую, дамы и господа

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

Вы узнаете про:
  • Взаимодействие с сайтом (DropDown, Entry)
  • Осуществление поиска YouTube
  • Создание аккаунта с помощью Selenium + JSON
Присаживайтесь поудобнее, начинаем кодить!

Глава I: Взаимодействие с сайтом

Как я и говорил в прошлой статье, у Selenium существуют веб-локаторы...