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

Статья Методы обхода защиты от автоматизированного ПО в браузере Chrome под управлением Selenium в Python

  • 26 785
  • 9
При парсинге данных возникают ситуации, когда нужно получить доступ к сайту с помощью драйвера selenium. Так как на странице сайта в коде выполняются скрипты, которые добавляют в код данные, доступ к которым с помощью обычных запросов получить просто не получиться. Но, все может быть немного печальнее. К примеру, страница может находиться за CDN, такой как Cloudflare, с включенной проверкой браузера. В этом случае обычный драйвер selenium доступ к странице не получит, так как будет определено, что используется автоматизированное тестовое ПО. Но, даже в этих случаях выход есть. Давайте посмотрим, как можно обойти данную проверку с помощью отключения определенных опций в браузере, а также рассмотрим уже модифицированную версию драйвера для Chrome, в которой уже из коробки отключены данные опции. Но, обо всем по порядку.

prew.jpg

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

Статья Создаем приложение для хранения данных в базе sqlite с помощью Python и Qt. Часть 02

  • 7 353
  • 0
Данная статья является продолжением первой части (Создаем приложение для хранения данных в базе sqlite с помощью Python и Qt. Часть 01) в которой мы начали создавать приложение для хранения документов в формате HTML в базе данных sqlite с помощью Python и Qt Designer. И если в первой части мы рассмотрели код для взаимодействия с базой данных, то в этой части сосредоточимся на создании графического интерфейса и описания программной части для взаимодействия с его элементами.

000_02.png

Что потребуется?

Как устанавливать Qt Designer в операционных система мы рассмотрели в предыдущей статье. На всякий случай напомню как это делается, если вы первую часть не читали. Для установки Дизайнера в операционной системе Linux необходимо выполнить последовательно...

Статья Реализация метода HTTP-запроса «GET» с помощью socket в Python

  • 5 136
  • 0
Наверное все пользовались библиотекой requests и знакомы с ее методом GET. Давайте попробуем с помощью библиотеки socket реализовать модуль для выполнения простых функций данного метода, таких как: статус-код, заголовки и тело запроса.

000.jpg

Конечно же, мы не будем писать свою библиотеку requests, потому как в этом нет необходимости. Но, думаю, что нужно знать, как выполнить запрос к сайту или по определенному адресу с помощью socket. Иногда появляются такие задачи, где requests, просто не работает. Для примера, есть онлайн трансляции, адрес которых начинается не с привычных http или https, а с другого протокола rtmp. Если попробовать выполнить запрос указав такой адрес в requests, вы получите сообщение о том, что невозможно выполнить соединение потому, что схема адреса не соответствует стандартам. А вот с помощью сокетов это реализовать вполне по силам. Итак, давайте перейдем от теории к делу и откроем IDE, в которой вы...

Статья Создаем приложение для хранения данных в базе sqlite с помощью Python и Qt. Часть 01

  • 6 603
  • 0
В данной статье я попытаюсь создать приложение, которое позволяет сохранять в базу данных файлы в формате HTML. За все время, проведенное в интернете и поиске самой разнообразной информации натыкаешься на большое количество самых разнообразных страниц и статей, которые в данный момент прочитать не получается. В этом случае можно поступить по разному. Кто-то просто сохраняет ссылку в браузере, кто-то добавляет страницы в агрегаторы ссылок. Кто-то сохраняет страницы на жесткий диск, особенно, если это информация, которая может потребоваться в дальнейшем. Я отношусь скорее к последним. И за долгое время накапливается большое количество сохраненных страниц, в которых становиться довольно сложно ориентироваться. Поэтому я решил сделать небольшое приложение на Python, которое частично помогло решить мне эту задачу.

000_01.png

Для начала, почему формат HTML. Ну, во-первых, это просто удобно. В случае, если вам нужно что-то...

Статья Скачиваем вложения из постов группы ВК с помощью Python

  • 5 350
  • 5
На создание данного скрипта меня натолкнула работа с плейлистами m3u, когда я пытался создать чекер работоспособности ссылок. Процесс создания частично описан вот в этой статье. Тогда, для тестирования мне нужно было скачивать большое количество плейлистов. Таковые нашлись в ВК. Вот только скачивать руками все это было достаточно долго. Поэтому, на том этапе, я сделал простенький загрузчик и пользовался им. А позже решил сделать его немного более универсальным, ведь в ВК, к примеру, публикуются не только плейлисты во вложениях, но, также книги и изображения с разными полезными инструкциями. Конечно же, для его создания я использовал Python.

000.jpg

Принцип работы загрузчика довольно прост и использует VK API. Для того, чтобы можно было использовать его в более удобном виде, нашлась для этого библиотека. Таким...

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

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

000.png

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

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

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

000.jpg

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

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

  • 6 620
  • 1
Logotype.jpg

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

План работы

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

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

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

000.png

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

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

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

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

000_0.png

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