Потенциальные угрозы безопасности в блогах с открытым исходным кодом: как защитить личную информацию от утечек

Обзор

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

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

🔍 Типичные типы утечек информации

Китайские чувствительные слова

Следующие китайские слова могут содержать личную конфиденциальную информацию, рекомендуется проверять их перед отправкой кода:

  • Пароль
  • Аккаунт
  • Идентификационный номер
  • Банковская карта
  • Alipay
  • WeChat
  • Номер телефона
  • Домашний адрес
  • Место работы
  • Социальная карта
  • Водительское удостоверение
  • Паспорт
  • Кредитная карта

Английские ключевые слова

В англоязычной среде следует особое внимание уделять следующим ключевым словам:

  • username
  • password
  • account
  • key
  • ini
  • credential
  • card
  • bank
  • alipay
  • wechat
  • passport
  • id
  • phone
  • address
  • company

Использование регулярных выражений для обнаружения

Можно использовать следующее регулярное выражение для сканирования потенциально конфиденциальной информации в репозитории:

(密码|账号|身份证|银行卡|支付宝|微信|手机号|家庭住址|工作单位|社保卡|驾驶证|护照|信用卡|username|password|passwd|account|key\s*:|\.ini|credential|card|bank|alipay|wechat|passport|id\s*:|phone|address|company)

Сканирование в VSCode

Если вы используете VSCode в качестве редактора блога, вы можете выполнить полный сканирование чувствительной информации по сайту следующим образом:

  1. Откройте VSCode
  2. Используйте сочетание клавиш Ctrl+Shift+F (Windows/Linux) или Cmd+Shift+F (Mac) для открытия глобального поиска
  3. Введите указанное выше регулярное выражение в поле поиска
  4. Включите режим регулярных выражений (нажмите значок .* рядом с полем поиска)
  5. Нажмите поиск и проверьте результаты на наличие потенциально чувствительной информации

Пример регулярного поиска в VSCode

🕰️ Утечки информации в истории Git

История версий Git может содержать чувствительную информацию из удаленных файлов. Даже если в текущем коде нет чувствительной информации, в исторических коммитах она может сохраниться.

Сканирование истории Git

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

Очистка истории Git

Если необходимо очистить чувствительную информацию из истории Git, можно использовать следующие методы:

⚠️ Важное напоминание:Выполнение следующих операций приведет к постоянному удалению истории Git, пожалуйста, обязательно создайте резервные копии важных данных и убедитесь, что вы полностью понимаете значение этих команд.

# Сброс до первого коммита (сохранение изменений в рабочей области)
git reset --soft ${first-commit}

# Принудительная отправка в удаленный репозиторий
git push -f

Примечание:Если вы хотите сохранить полную историю коммитов, не используйте вышеуказанный метод.

🛠️ Рекомендуемые профессиональные инструменты сканирования

Помимо ручной проверки, можно использовать профессиональные инструменты для более комплексного сканирования:

TruffleHog

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

TruffleHog Logo

Характеристики:

  • Звезды на GitHub:17.2k
  • Forks:1.7k
  • Поддержка различных режимов сканирования
  • Может обнаруживать глубоко вложенные чувствительные данные

🔒 Альтернативные решения для безопасной публикации блога

Если вы беспокоитесь о рисках безопасности, связанных с публичными репозиториями, вы можете рассмотреть следующие альтернативы:

1. Использование GitHub Pro

  • GitHub Pro поддерживает публикацию частных репозиториев на Pages
  • Стоимость:около 4 долларов США в месяц
  • Преимущества:сохранение конфиденциальности исходного кода при сохранении удобства GitHub Pages

2. Использование Cloudflare Pages

  • Установите репозиторий как частный
  • Разверните через Cloudflare Pages
  • Преимущества:полностью бесплатно, поддержка частных репозиториев

3. Стратегия двойного репозитория

  • Частный репозиторий:хранит статьи в процессе редактирования и черновики
  • Публичный репозиторий:хранит только опубликованные статьи
  • Преимущества:максимальная защита черновиков и неопубликованного контента
  • Примечание:если вы используете системы комментариев, зависящие от GitHub, такие как giscus, вам все равно понадобится публичный репозиторий

📝 Рекомендации по лучшим практикам

  1. Регулярный аудит:регулярно используйте инструменты сканирования для проверки чувствительной информации в репозитории
  2. Проверка перед отправкой:перед каждым коммитом кода проверяйте, не содержит ли он чувствительной информации
  3. Использование .gitignore:правильно настройте файл .gitignore для исключения чувствительных файлов
  4. Переменные окружения:храните чувствительные настройки в переменных окружения, а не в репозитории кода
  5. Управление черновиками:рассмотрите возможность использования специальной системы управления черновиками, чтобы избежать случайной отправки черновиков

🎯 Заключение

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

Помните, что информационная безопасность — это непрерывный процесс, требующий постоянной бдительности.

Ссылки