Локальная база данных Телеграмм что это

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

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

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

Таким образом, Telegram не шифрует эту базу SQLite, оставляя в системе сообщения в виде простого текста. Ту же самую проблему Сачи обнаружил и в другом мессенджере — Signal.

Что такое База Данных? — простыми словами ► ПРАКТИЧЕСКОЕ ПРОГРАММИРОВАНИЕ

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

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

Источник: dzen.ru

Локальная база данных телеграмм что это

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

iGuides для смартфонов Apple

Telegram хранит переписку в незашифрованном виде. Павел Дуров: так и должно быть

Александр

Александр Кузнецов — 31 октября 2018, 14:23

Telegram

ИБ-специалист Натаниэль Сачи заявил, что десктопная версия Telegram хранит переписку пользователя в локальном накопителе без использования шифрования. Чаты можно обнаружить в базе данных мессенджера.

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

Еще по теме:  Как с помощью Гугл аккаунта вспомнить пароль от Телеграм

Что такое базы данных? ДЛЯ НОВИЧКОВ / Про IT / Geekbrains

В комментариях к посту Сачи в Twitter отмечается, что эта проблема актуальна только для десктопной версии Telegram для macOS, а на Windows и Linux её нет. Кроме того, ей не подвержены мобильные приложения мессенджера. Комментаторы также указали, что подобным образом хранят переписку многие другие мессенджеры.

Павел Дуров необычайно чувствителен к обвинениям Telegram в небезопасности, поэтому он прокомментировал заявление Сачи:

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

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

iGuides в Telegram — t.me/iguides_ru
iGuides в Яндекс.Дзен — zen.yandex.ru/iguides.ru
Дарим подарки за лучшие статьи в блогах

Источник: www.iguides.ru

Подключаем Sqlite3 к Telegram боту

Для многих новичков в разработке на Python возникает проблема — как подключить базу данных? Я сам столкнулся с такой проблемой в начале разработки. Тема оказалось довольно простой, но в интернете есть множество гайдов, которые могут запутать. В этом туториале я расскажу о том, как просто интегрировать базу данных Sqlite3 на примере Telegram бота.

Начало работы

Для работы нам понадобятся базовые знания в Python, достаточные для написания простого бота. Данный гайд можно использовать не только для интеграции с ботом, но и для других проектов. Если вы не используете PyCharm, и у вас нет средства для работы с БД, то необходимо установить утилиту SQLiteStudio с официального сайта.

Теперь давайте перейдем к написанию кода. В терминале необходимо установить pyTelegramBotAPI (если по какой-то причине у вас его нет).

Еще по теме:  Как создать переписку с самим собой в Телеграмме

pip install pyTelegramBotAPI

Далее создаем новый файл с расширением .py. В нем прописываем следующее:

import sqlite3 import telebot bot = telebot.TeleBot(«token»)

Устанавливать sqlite3 не нужно — это стандартная библиотека. Вместо «token» необходимо указать токен бота, который выдал вам BotFather. Теперь проверим, работает ли бот.

Запустим код. Если при запуске бота он пишет нам «Добро пожаловать», то все работает отлично.

Как мы видим, все работает.

Настройка базы данных

Открываем SQLiteStudio. Во вкладке Database выбираем пункт Add a database. Для удобства можно использовать сочетание Ctrl+O.

Далее нажимаем на зеленую кнопку Создать новый фал базы данных. Выбираем директорию вашего проекта. В ней можете создать отдельную папку db, где будет хранится файл с базой. Вводим название, например database. Расширение будет присвоено автоматически. Нажимаем Сохранить. Теперь слева в списке у нас появился наш файл.

Кликаем по нему ПКМ и выбираем пункт Connect to the database. Соединение с базой установлено. Появилось два подпункта: Таблицы и Представления. В этом уроке мы будем затрагивать только пункт Таблицы. Нажимаем по нему ПКМ и выбираем Add a table.

В поле для ввода указываем имя для таблицы. Я назову ее test. Чуть выше есть активная кнопка Добавить столбец (Ins). В появившемся окне указываем название столбца и тип данных. Для начала вам могут понадобится такие условия, как Первичный ключ, Не NULL и Уникальность.

Первый столбец я назову id, выберу тип данных INTEGER и установлю все три условия. У Первичный ключ выберу настройку Автоинкремент. Этот столбец будет автоматически создавать ID записи в таблице. Работать с ним в коде мы не будем.

Второй столбец будет хранить user_id. Он будет иметь тип данных INT, уникален и не равен нулю. Третий столбец я назову user_name, присвою тип данных STRING и выберу пункт Не NULL. Еще 2 столбца будут называться user_surname и username. После того, как вы создали столбцы, нажимаем зеленую кнопку с галочкой.

Еще по теме:  Как добавить Телеграмме а также расширение

В общем все будет выглядеть вот так.

Работа с базой данных в коде

Теперь давайте вновь перейдем к коду. Создадим 2 переменные.

conn = sqlite3.connect(‘db/database.db’, check_same_thread=False) cursor = conn.cursor()

В первой мы подключаем нашу базу данных, а во второй создаем курсор для работы с таблицами. Обратите внимание на то, что у меня в директории проекта создана папка db, а уже в ней находится файл БД. Если у вас по другому, укажите расположение в первой переменной.

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

def db_table_val(user_id: int, user_name: str, user_surname: str, username: str): cursor.execute(‘INSERT INTO test (user_id, user_name, user_surname, username) VALUES (?, ?, ?, ?)’, (user_id, user_name, user_surname, username)) conn.commit()

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

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

В переменные мы вносим имя пользователя, id, имя и фамилию в Telegram, а потом сохраняем в БД. В конце кода можем сделать так, чтобы бот работал постоянно.

bot.polling(none_stop=True)

Пришло время проверить, как работает код. Запускаем бота и пишем ему «Привет».

Теперь можем зайти в SQLiteStudio, и выбрав вкладку Данные посмотреть что получилось:

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

Заключение

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

Огромное спасибо за то, что прочитали. Надеюсь, кому-то помог. Всем удачи и поменьше багов в коде!

Источник: habr.com

Рейтинг
( Пока оценок нет )
Загрузка ...