40 lines
6.0 KiB
Markdown
40 lines
6.0 KiB
Markdown
|
# :ninja: Конфиденциальность
|
|||
|
|
|||
|
Я разработчик, и это приложение должно помогать мне работать, оптимизируя мое время взаимодействия с GitLab. В какой-то момент я решил подлиться своими наработками со всеми желающими. Часто в GitLab содержится множество конфиденциальной информации, которую не хотелось бы раскрывать. Эта страница пытается ответить на все вопросы, которые могут вас смущать.
|
|||
|
|
|||
|
!!! tip "Доверие"
|
|||
|
|
|||
|
Вы не должны верить мне на слово. Вы можете [самостоятельно изучить код, он открыт и не сложен.](https://github.com/uPagge/gitlab-notification) После проверки можно самостоятельно собрать jar и упаковать его в Docker. Либо запускать код прямо из Idea.
|
|||
|
|
|||
|
## Защита токена GitLab
|
|||
|
Для работы ассистента необходим персональный токен GitLab. Он указывается в переменные среды и нигде дополнительно не дублируется. Таким образом токен не попадает в Telegram и хранится только у вас на компьютере и в контейнере приложения.
|
|||
|
|
|||
|
Токен используется только при обращении к указанному GitLab, и только для выполнения описанных в документации возможностей. Никакой скрытой работы не выполняется, по возможности обо всех взаимодействиях с GitLab дополнительно сообщается во время настройки.
|
|||
|
|
|||
|
## Уровни конфиденциальности
|
|||
|
|
|||
|
Некоторые уведомления могут содержать множество чувствительной информации. Например, уведомления о новых сообщениях в тредах. Возможно вы не захотите раскрывать столько информации о вашей разработке телеграму, ведь через него идет получение уведомлений. Специально для таких случаев предусмотрены уровни конфиденциальности разных типов уведомлений.
|
|||
|
|
|||
|
Возьмем для примера уведомление о новом сообщении в треде. При минимальном уровне конфиденциальности вы получите уведомление с текстом комментария и сможете сразу ответить на него в телеграм, а при максимальном уровне конфиденциальности будет сообщаться только о факте нового комментария, без содержания. Все это настраивается при первом запуске.
|
|||
|
|
|||
|
## Сохранение в БД
|
|||
|
Для работы ассистента ему нужно сохранять предыдущее состояние GitLab сущностей. Для этого используется БД. Приложение старается не хранить в БД больше данных, чем необходимо. Как только необходимость в данных теряется, например MR мержится, данные из БД удаляются.
|
|||
|
|
|||
|
Прочитать подробнее можно в разделе: [Работа с базой данных](../architecture/concept.md#schema-database)
|
|||
|
|
|||
|
## Несанкционированный доступ
|
|||
|
==Все боты в Telegram являются публичными.== Это значит, что ваш бот может быть найден через поиск в Telegram. Поэтому ==не рекомендуется давать название боту, которое может раскрыть его предназначение.==
|
|||
|
|
|||
|
Даже если кто-то случайно напишет вашему боту ничего не случится. ==В боте встроена проверка прав доступа.== Вот как она работает:
|
|||
|
|
|||
|
1. При запуске вы указываете ваш идентификатор в Telegram. В отличие от логина, идентификатор уникален для каждого пользователя и нет возможности его подменить.
|
|||
|
2. Когда бот получает сообщение, он проверяет идентификатор отправителя
|
|||
|
3. Если идентификатор отправителя не совпадает с указанным при запуске, бот не обрабатывает команду
|
|||
|
4. Вы получаете уведомление о том, что такой-то пользователь пытался написать в ваш бот. Вам доступен логин этого пользователя в Telegram, а также текст его сообщения. Это поможет понять является ли попытка доступа злонамеренной и принять меры.
|
|||
|
|
|||
|
<figure markdown>
|
|||
|
![unauth-access.png](unauth-access.png){ loading=lazy width="500" }
|
|||
|
<figcaption>уведомление о несанкционированном доступе</figcaption>
|
|||
|
</figure>
|
|||
|
|
|||
|
Для злоумышленника все выглядит так, как будто бот не работает. Никаких ответных сообщений ему не отправляется.
|