system-prompts-and-models-o.../dealix/docs/SECURITY_INCIDENT_PAT_EXPOSURE.md
2026-05-01 14:03:52 +03:00

47 lines
2.1 KiB
Markdown

# حادثة تسريب GitHub PAT — إجراءات وإرشادات
## ماذا حدث؟
ظهر **Personal Access Token (PAT)** لـ GitHub في محادثة خارجية (مثلاً ChatGPT أو شاشة مشاركة). أي توكن يُرى بهذه الطريقة يُعتبر **مكشوفاً (compromised)** حتى لو لم يُلصق في الريبو.
## المطلوب من صاحب الحساب فوراً
1. افتح [GitHub → Settings → Developer settings → Personal access tokens](https://github.com/settings/tokens).
2. **احذف (Revoke)** التوكن المكشوف بالكامل.
3. أنشئ توكناً جديداً **فقط** عند الحاجة، ويفضّل **Fine-grained PAT** بأقل صلاحيات ولأقصر مدة.
4. **لا** تضع PAT في محادثات، ولا في لقطات شاشة، ولا في Issues/PR descriptions.
## المصادقة المحلية الموصى بها
```bash
gh auth login
```
أو SSH keys للـ `git` بدلاً من لصق PAT في remote URL.
## سياسة الريبو
- **لا أسرار** في الملفات المتتبعة: لا `ghp_`، لا `github_pat_`، لا مفاتيح API خام في الكود.
- استخدم `.env` (مُهمل في `.gitignore`) ومتغيرات بيئة على السيرفر فقط.
## فحص الريبو محلياً
شغّل من جذر المشروع (تجاهل `.git` و`.venv` و`node_modules` و`htmlcov`):
```bash
rg -n "ghp_|github_pat_" --glob '!htmlcov/**' --glob '!.git/**' --glob '!.venv/**' .
```
أو PowerShell:
```powershell
Get-ChildItem -Recurse -File -Exclude *.git* | Select-String -Pattern "ghp_|github_pat_" -ErrorAction SilentlyContinue
```
إذا وُجد سر **في commit تاريخي**: أبلغ الفريق؛ قد يلزم **تدوير السر** و**تنظيف التاريخ (BFG/git filter-repo)** — لا يُنفَّذ تلقائياً بدون قرار صاحب الريبو.
## سجل هذا المستند
- تاريخ الإنشاء: ضمن حملة تثبيت PR #125.
- الغرض: توثيق الحادثة ومنع التكرار.