## Прожарка: llm_wiki  
**Оценка: 5/10**

### Критично  
- [⚠ МНЕНИЕ] В `popup.js` и `App.tsx` четыре HTTP-запроса без TLS – вытаскиваете данные по сырому каналу, перехват за минуту.  
- [⚠ МНЕНИЕ] В `src-tauri` нет `tauri.conf.json > security > csp` и `dangerousDisableAssetCspModification` не выключен – окно Tauri можно взломать через инъекцию в HTML.  
- [⚠ МНЕНИЕ] `Turndown.js:141` создаёт RegExp из аргумента функции без экранирования – ReDoS-атака одним постом.  
- [✓ ФАКТ: Код-Рентген] 12 из 14 `innerHTML` без санитизации: `search-view.tsx`, `sources-view.tsx`, `chat-message.tsx` – XSS на каждой странице.  
- [✓ ФАКТ: CVE-Ищейка] В `package.json` остаётся уязвимый `vite@5.0.0` и `hono@4.1.0`, CVE-2026-39363 даёт локальный доступ к исходникам.

### Надо переделать  
- [⚠ МНЕНИЕ] В `clip-watcher.ts` и `ingest.ts` весь лог на `console.log(variable)` – в проде утечет память и PII.  
- [⚠ МНЕНИЕ] В `ingest.ts` 644 используется `fs.writeFile` без обработки `EMFILE` – упадёт на сотне файлов.  
- [⚠ МНЕНИЕ] В `sources-view.tsx` длина строки свыше 1000 символов, линтер просит форматирование.  
- [⚠ МНЕНИЕ] В `ci.yml` нет кэша `node_modules`, пересборка на 3 минуты дольше.  
- [⚠ МНЕНИЕ] В `tauri.conf.json` отключено обновление – пользователи останутся с этим набором CVE навсегда.

### Мелочи  
- [⚠ МНЕНИЕ] В `wiki-editor.tsx` переменная `content` используется до объявления – `var` поднимает, но читается как магия.  
- [⚠ МНЕНИЕ] В `search-view.tsx` `escapeRegex` написан вручную, но проще `_.escapeRegExp`.  
- [⚠ МНЕНИЕ] В `tsconfig.json` `strict` отключён – тысяча неявных `any`.  
- [⚠ МНЕНИЕ] В `README.md` скриншоты в `assets` лежат в PNG, но в `package.json` указана иконка `logo.jpg` – двойная вакансия.  
- [⚠ МНЕНИЕ] В `clip-server.rs` `unwrap()` на `TcpListener::bind` – при занятом порту бинарь крашит.

### Что хорошо  
- [⚠ МНЕНИЕ] Полностью авторский код: один автор, 126 файлов, все изменены, лицензия своя.  
- [⚠ МНЕНИЕ] Архитектура чёткая: Rust-бэкенд на Tauri, React-фронт, сторы на Zustand, граф знаний в SQLite.  
- [⚠ МНЕНИЕ] Есть i18n (en/zh) и тёмная тема.  
- [⚠ МНЕНИЕ] CI/CD кросс-платформенный: macOS/Win/Ubuntu, артефакты собираются.  
- [⚠ МНЕНИЕ] Авто-сохранение, линтер Markdown, поиск по эмбеддингам, веб-поиск и LaTeX-рендер – функционал полный.  
- [⚠ МНЕНИЕ] Тесты Jest лежат рядом с кодом и запускаются в CI.  
- [✓ ФАКТ: Секрет-Нюхач] Нет секретов в репо, gitleaks чист.  
- [⚠ МНЕНИЕ] `unsafe-formatstring` только в логах, не в пользовательском выводе.

### Вердикт  
Проект «безопасный личный википед» пока остаётся личной википедией злоумышленника: XSS, ReDoS и открытый dev-сервер делают его опасным даже для локального запуска.

---

*Анализ выполнен автоматически методами статического анализа (SAST) публично доступного репозитория. Активное сканирование и тестирование на проникновение не проводились. Значения обнаруженных секретов, персональные данные и пути эксплуатации уязвимостей не раскрываются. Цитирование кода — в соответствии со ст. 1274 ГК РФ. Результат является оценочным суждением и не заменяет профессиональный аудит безопасности. Пункты помечены: ✓ подтверждено линтером, ⚠ мнение AI, ✗ опровергнуто.*
