بنقرة واحدة
bidi-guard
BiDi text validation and Trojan Source attack detection (CVE-2021-42574)
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
BiDi text validation and Trojan Source attack detection (CVE-2021-42574)
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Adhan audio playback with multiple muezzin voices
مراجعة كود عربي — راجع الكود مع فحص التعامل مع النصوص العربية وRTL والتعليقات العربية
مصطلحات صحية عربية — ترجم واشرح مصطلحات طبية بالعربي، ساعد في فهم التقارير الطبية
مصطلحات قانونية عربية — ترجم واشرح مصطلحات قانونية، ساعد في فهم العقود والمستندات القانونية بالعربي
Arabic OCR text extraction from images and documents
كاتب السيرة الذاتية — اكتب سيرة ذاتية احترافية بالعربي أو ثنائية اللغة
| name | bidi-guard |
| description | BiDi text validation and Trojan Source attack detection (CVE-2021-42574) |
| version | 1.0.0 |
| author | Mousa Abu Mazin |
| license | MIT |
| platforms | ["linux","macos"] |
| prerequisites | {"commands":["bidi-guard"],"env_vars":[]} |
| metadata | {"hermes":{"tags":["nlp","security","bidi","unicode","arabic"]}} |
أداة لاكتشاف حروف Unicode الاتجاهية المخفية التي تُستخدم في هجمات Trojan Source.
CVE-2021-42574 — ثغرة Trojan Source تستغل حروف Unicode الاتجاهية (BiDi control characters) لإخفاء كود خبيث داخل كود يبدو طبيعيا. الحروف الخطيرة:
| الحرف | الكود | الخطورة | الوصف |
|---|---|---|---|
| RLO | U+202E | عالية | يعكس اتجاه النص — يخفي كود خبيث |
| LRO | U+202D | عالية | يفرض اتجاه يسار-يمين |
| RLI | U+2067 | متوسطة | عزل نص من اليمين لليسار |
| LRI | U+2066 | متوسطة | عزل نص من اليسار لليمين |
| FSI | U+2068 | متوسطة | عزل اتجاه تلقائي |
| PDI | U+2069 | منخفضة | إنهاء العزل |
| U+202C | منخفضة | إنهاء التجاوز |
bidi-guard scan PATH
مثال — فحص مشروع كامل:
bidi-guard scan ./src/
النتيجة المتوقعة:
🔍 Scanning ./src/ ...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚠️ src/auth/login.js:42
Found: U+202E (RLO) — Right-to-Left Override
Context: if (user === "admin // Check role ") {
Risk: HIGH — Code appears different than what executes
⚠️ src/utils/format.py:18
Found: U+2067 (RLI) — Right-to-Left Isolate
Context: price = "100 SAR"
Risk: MEDIUM — May be legitimate Arabic text
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Files scanned: 127
Issues found: 2 (1 HIGH, 1 MEDIUM)
مثال — فحص ملف واحد:
bidi-guard scan ./src/auth/login.js
echo "النص المراد فحصه" | bidi-guard scan -
bidi-guard ci
يرجع exit code غير صفري إذا وجد حروف خطيرة. مناسب لـ GitHub Actions.
مثال GitHub Actions workflow:
name: BiDi Guard
on: [pull_request]
jobs:
bidi-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install bidi-guard
run: pipx install bidi-guard
- name: Scan for BiDi attacks
run: bidi-guard ci
bidi-guard fix PATH
مثال تفاعلي:
bidi-guard fix ./src/
النتيجة المتوقعة:
Found 2 BiDi characters:
1. src/auth/login.js:42 — U+202E (RLO)
Remove? [y/N/a(ll)] y
✓ Removed
2. src/utils/format.py:18 — U+2067 (RLI)
Remove? [y/N/a(ll)] n
⊘ Skipped (legitimate Arabic)
Fixed: 1 | Skipped: 1
إصلاح بدون تأكيد:
bidi-guard fix ./src/ --yes
bidi-guard explain
يوضح كل حرف bidi وكيف يُستغل مع أمثلة حية.
# .pre-commit-config.yaml
repos:
- repo: local
hooks:
- id: bidi-guard
name: BiDi character check
entry: bidi-guard ci
language: system
pass_filenames: false
المشاريع التي تحتوي نصوص عربية طبيعية ستظهر فيها حروف RLI/FSI بشكل مشروع. استخدم ملف .bidiignore لاستثناء ملفات الترجمة:
# .bidiignore
locales/
i18n/
*.po
*.xliff