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

**Оператор:** Индивидуальный предприниматель Аведикян Карен Самвелович
**Домен:** [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. Настоящая Политика описывает правовые, организационные и технические меры, принимаемые Оператором для защиты обрабатываемых персональных данных (далее — ПДн) от неправомерного или случайного доступа, уничтожения, изменения, блокирования, копирования, предоставления, распространения и иных неправомерных действий.

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`);
- журналы ошибок **Sentry** (self-hosted / SaaS с включённым PII-scrubber).

## 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`;
- `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. В базе данных для пользователей с ролью `CLIENT` действует **CHECK-констрейнт `user_pii_only_for_staff_or_b2b`**:

```sql
CHECK (
  (phone IS NULL AND firstName IS NULL AND lastName IS NULL AND email IS NULL)
  OR staffRole IS NOT NULL
  OR isPartnerBusinessAccount = true
)
```

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

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

5.1.4. Поле `Project.address` принимает только адрес здания (улица + дом). Квартира, подъезд, код домофона, этаж отклоняются серверной валидацией.

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`, `isPartnerBusinessAccount` с rate-limit (например, `/api/pro/clients/lookup` — 20 запросов/мин/партнёр).

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

5.5.1. Ошибки приложения передаются в Sentry. Перед отправкой каждое событие проходит через **PII-scrubber** (`src/lib/sentry-init-options.ts`), который заменяет чувствительные поля (`firstName`, `lastName`, `displayName`, `address`, `comment`, `email`, `phone`, `token`, `password`) на значение `[Filtered]`.

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/`.
