ワンクリックで
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