# Политика защиты персональных данных и принимаемые меры

**Платформа (ИП):** Индивидуальный предприниматель Аведикян Карен Самвелович
**Домен:** [remcard.ru](https://remcard.ru)
**Редакция:** 1.0 от 24 апреля 2026 года
**Основание:** Федеральный закон от 27.07.2006 № 152-ФЗ «О персональных данных» (ст. 18.1, 19), Постановление Правительства РФ от 01.11.2012 № 1119 «Об утверждении требований к защите ПДн при их обработке в ИСПДн», Приказ ФСТЭК России от 18.02.2013 № 21.

> Документ утверждается во исполнение ст. 18.1 ч. 2 ФЗ-152: ведущий ИП фиксирует правовые, организационные и технические меры защиты персональных данных.

---

## 1. Общие сведения

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

1.2. Политика является внутренним документом ведущего ИП (платформы) и публикуется в ознакомительном режиме по адресу [https://remcard.ru/legal/data-protection](https://remcard.ru/legal/data-protection).

1.3. Политика применяется ко всем информационным системам платформы, в которых обрабатываются ПДн:

- веб-приложение **remcard.ru** (Next.js, хостинг Vercel);
- база данных **PostgreSQL** (Neon, регион Frankfurt);
- файловое хранилище **Yandex Object Storage** (регион `ru-central1`);
- журналы выполнения и ошибок на стороне **Vercel** (хостинг) и при необходимости обезличенные записи в `console` на сервере (без передачи в сторонние SaaS для трейсинга).

## 2. Уровень защищённости и модель угроз

2.1. В соответствии с Постановлением Правительства РФ № 1119 информационная система платформы относится к **ИСПДн 4-го уровня защищённости**:

- обрабатываются иные категории ПДн (ФИО, контактные данные, город, аватар);
- в системе **не обрабатываются** специальные категории ПДн (ст. 10 ФЗ-152), биометрические данные (ст. 11), а также общедоступные данные в значении ст. 8;
- нарушения в ИС не создают угрозы для жизни, здоровья и имущества субъектов ПДн;
- количество субъектов ПДн, чьи данные обрабатываются, — менее 100 000.

2.2. **Модель угроз** актуализируется ежегодно. Основные актуальные угрозы:

- компрометация учётных записей сотрудников ведущего ИП/партнёров (фишинг, утечка пароля);
- уязвимости в зависимостях npm / Python (supply chain);
- злоупотребления привилегиями внутри административного интерфейса `/staff`;
- массовый сбор данных партнёрами через API (парсинг);
- атаки на OAuth-провайдеров (VK, Yandex, MAX, Telegram) — компрометация сессии.

## 3. Правовые меры

3.1. Политика обработки персональных данных — [https://remcard.ru/legal/privacy](https://remcard.ru/legal/privacy).

3.2. Пользовательское соглашение — [https://remcard.ru/legal/terms](https://remcard.ru/legal/terms).

3.3. Сведения о намерении обрабатывать ПДн внесены в Роскомнадзор, запись в реестре ведения учёта *(укажите номер и дату при необходимости).*

3.4. С партнёрами и с сотрудниками заключаются договоры, содержащие условия о конфиденциальности и соблюдении режима ПДн.

## 4. Организационные меры

4.1. Состав лиц, имеющих доступ к ПДн:

- **Ведущий ИП** (ИП Аведикян К.С.) — полный доступ, роль `StaffRole=OWNER`.
- **Администраторы платформы** — `StaffRole=ADMIN`, ограниченный доступ к модерации. Назначаются письменным распоряжением ведущего ИП.
- **Служба поддержки (роль `StaffRole=OPERATOR`)** — доступ к обращениям без права массовой выгрузки.
- **Аналитики** — `StaffRole=ANALYST`, доступ только к обезличенным агрегатам.

4.2. Сотрудники партнёров получают доступ к ПДн клиентов партнёра через OAuth + `BranchEmployee` / `PartnerEmployee` (см. `StaffInvite`-механизм). Сотрудник не видит данных клиентов других партнёров.

4.3. **Журналирование действий.** Все значимые действия с ПДн фиксируются в таблице `AuditLog` с идентификатором `actorId`, обезличенным IP, action-enum и снимком контекста. Типы действий включают:

- `AUTH_LOGIN_SUCCESS`, `AUTH_LOGIN_FAILED`;
- `CONSENT_GRANTED`, `CONSENT_WITHDRAWN`;
- `USER_DATA_EXPORTED`, `USER_DATA_DELETED`;
- `CLIENT_LOOKUP_FOUND`, `CLIENT_LOOKUP_NOT_FOUND` (поиск клиента партнёром);
- `TEAM_APPLICATION_SUBMITTED` (только в истории журнала; новая заявка в БД больше не пишется — p120-Q);
- `RETENTION_CRON_RAN`.

4.4. **Обучение.** Ведущий ИП проходит самообучение по актуальной практике применения 152-ФЗ не реже одного раза в год.

4.5. **Реагирование на инциденты.** При обнаружении инцидента безопасности:

1. Ответственный за платформу немедленно фиксирует факт в `AuditLog`.
2. Оценивается состав затронутых данных.
3. Субъекты уведомляются в срок не позднее 24 часов с момента обнаружения (ст. 21 ч. 3.1 ФЗ-152).
4. Роскомнадзор уведомляется в течение 72 часов (ст. 21 ч. 3.1).
5. Меры по устранению фиксируются в отдельном журнале инцидентов.

## 5. Технические меры

### 5.1. Минимизация сбора ПДн («Zero-PII»)

5.1.1. Платформа RemCard на уровне БД (**CHECK-constraint `user_no_pii_hard_zero_pii` / `user_company_name_zero_pii`**) не допускает хранения на модели `User` полей `phone`, `firstName`, `lastName`, `email`, `staffPhone`, `staffEmail`, `companyName` (всегда `NULL` для всех ролей; p120-D.1, p120-U, без прежнего B2B carve-out). **Контакты и наименования юридических лиц** хранятся только на модели **`Organization`**, с проверкой `organization_no_pii_for_ip` (гейт 10-значного ИНН).

5.1.2. Для публичной идентификации клиента партнёрами используется не ФИО и не телефон, а случайный код **`publicId`** формата `RC-A1B2-C3D4` (Crockford Base32), выдаваемый один раз при регистрации и не ротирующийся.

5.1.3. Идентификаторы OAuth-провайдеров (`telegramId`, `maxId`, `vkId`, `yandexSub`) хранятся как есть, поскольку без доступа к соответствующему провайдеру не позволяют определить субъекта.

5.1.4. Для `Project` и `ClientOrder` **полный адрес в БД не хранится** (p120-R). В БД — только `addressCity`, `addressDistrict`, `addressGeohash` (5 знаков, ~5 км), заполняемые с клиента через `AddressGeocoder` (Яндекс.Карты + `encodeGeohash5`); бэкенд валидирует формат geohash.

5.1.5. Поле `Delegation.assigneeLabel` ограничено 40 символами и предназначено для ярлыка («Прораб», «Бригада 1»), а не для ФИО мастера.

### 5.2. Защита передачи данных

5.2.1. Все соединения с [remcard.ru](https://remcard.ru) обслуживаются по протоколу **HTTPS** с обязательным HSTS. TLS-сертификаты выпускает Let's Encrypt через Vercel.

5.2.2. Взаимодействие с внешними сервисами (Neon, Yandex Cloud, OAuth-провайдеры) выполняется исключительно по HTTPS.

5.2.3. Для OAuth-потоков VK и Yandex используется PKCE + `state`-cookie с подписью (`OAUTH_STATE_SECRET`, 30 дней).

### 5.3. Защита хранения

5.3.1. База данных Neon шифруется «в покое» алгоритмом AES-256 средствами провайдера.

5.3.2. Секреты (`VK_CLIENT_SECRET`, `YANDEX_CLIENT_SECRET`, `VK_SERVICE_TOKEN`, `OAUTH_STATE_SECRET`, `JWT_SECRET`, `CRON_SECRET`, `MAX_WEBHOOK_SECRET`) хранятся в Environment Variables Vercel и недоступны в git-репозитории.

5.3.3. Аватары пользователей хранятся в Object Storage с политикой public-read только для объектов, прошедших модерацию.

### 5.4. Аутентификация и авторизация

5.4.1. Вход осуществляется через один из четырёх OAuth-провайдеров: Telegram (widget + bot), MAX (bot), VK ID, Яндекс. Пароли на стороне сервиса не хранятся.

5.4.2. Сессия выдаётся JWT-токеном со сроком действия 30 дней, хранится в HttpOnly Secure SameSite=Lax cookie `remcard-token`. Секрет подписи — `JWT_SECRET`.

5.4.3. Внутренний Staff-интерфейс `/staff` дополнительно защищён ролевой моделью `StaffRole` и IP allowlist (через Vercel Firewall).

5.4.4. Доступ партнёра к API ограничен по `partnerType`, `staffRole`, `role=PRO` и т.д., с rate-limit (например, `/api/pro/clients/lookup` — 20 запросов/мин/партнёр).

### 5.5. Логирование и мониторинг

5.5.1. Сторонние сервисы внешнего трейсинга и агрегирования ошибок **не используются** (p120-T). Сообщения об ошибках пишутся в **Vercel Logs** и при необходимости в `console` на сервере; в коде действует политика не логировать PII (CI-гейт `no-pii-in-console`, p120-K).

5.5.2. Журнал `AuditLog` содержит обезличенный IP (`/24` для IPv4, `/64` для IPv6) и User-Agent. Через 365 дней IP и UA обнуляются автоматической задачей.

5.5.3. Веб-аналитика (`PageView`) записывается только при явном согласии пользователя (cookie `cookie-consent` с `analytics=true`). IP хранится в обезличенном виде.

### 5.6. Контроль зависимостей

5.6.1. Зависимости npm обновляются через Renovate / Dependabot; критические уязвимости устраняются в течение 72 часов с момента публикации CVE.

5.6.2. В CI включён `npm audit` и сканирование секретов в коммитах (job `Scan for secrets`).

### 5.7. Резервное копирование

Описано в отдельном документе [`BACKUP_POLICY.md`](./BACKUP_POLICY.md).

### 5.8. Сроки хранения

Описаны в отдельном документе [`RETENTION_POLICY.md`](./RETENTION_POLICY.md).

## 6. Права субъектов ПДн

6.1. Доступ к своим данным — [/account/privacy](https://remcard.ru/account/privacy), раздел «Мои данные».

6.2. Экспорт данных — кнопка «Скачать мои данные (.zip)» на той же странице. Выдаётся ZIP-архив со всеми данными субъекта и `README.txt` (ст. 14 ФЗ-152).

6.3. Отзыв согласия — кнопка «Отозвать» напротив каждого согласия.

6.4. Удаление аккаунта — кнопка «Удалить аккаунт» на той же странице. После подтверждения выполняется процедура `anonymizeAndDeleteUser`: обнуление всех PII, удаление `AuthAccount`, обезличивание связанных `Project/ClientOrder/Lead/Delegation`, отзыв всех активных `Consent`.

6.5. Письменные обращения принимаются по адресу электронной почты [remcardofficial@gmail.com](mailto:remcardofficial@gmail.com). Срок ответа — 10 рабочих дней (ст. 14 ч. 7 ФЗ-152), срок фактического исполнения — не более 30 дней.

## 7. Контроль и пересмотр

7.1. Фактическое исполнение Политики проверяется ведущим ИП не реже одного раза в квартал.

7.2. Политика пересматривается не реже одного раза в год либо при:

- изменении архитектуры системы;
- изменении состава обрабатываемых ПДн;
- изменении перечня используемых провайдеров;
- изменении законодательства.

---

**Утверждено:** ИП Аведикян К.С., 24 апреля 2026 года.
**Версионирование документа:** см. историю коммитов в репозитории [`karenavedikyan/remcard-navigator`](https://github.com/karenavedikyan/remcard-navigator) в каталоге `docs/privacy/`.
