Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
talisman — ماسح أسرار قائم على خطاف Git يكتشف الرموز وكلمات المرور والمفاتيح الخاصة في مجموعات التغييرات الصادرة، مما يمنع البيانات الحساسة من أن تُلتزم أو تُدفع إلى المستودعات. | Kitploit
أدوات/GitHubGitHub/thoughtworks/talisman
التحليل الثابتتحليل الكودDevSecOpsكشف الأسرار
GitHubthoughtworks/talisman

talisman

ماسح أسرار قائم على خطاف Git يكتشف الرموز وكلمات المرور والمفاتيح الخاصة في مجموعات التغييرات الصادرة، مما يمنع البيانات الحساسة من أن تُلتزم أو تُدفع إلى المستودعات.

عرض المستودع
2.1k252منذ 9 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
الموقع الإلكتروني

Talisman

أداة لاكتشاف ومنع تسرب الأسرار إلى نظام التحكم بالإصدارات

License: MIT Go Report Card contributions welcome Build Status

جدول المحتويات

  • ما هو Talisman؟
  • التثبيت
    • التثبيت في المسار (الطريقة الموصى بها)
    • التثبيت كقالب خطاف عام
  • إعداد مشروع
    • الاستخدام مع أطر عمل الخطافات
      • Pre-commit
      • Husky
    • استدعاء Talisman مباشرة
  • الترقية
  • Talisman أثناء العمل
    • التحقق من الصلاحية
    • تجاهل الملفات
      • الوضع التفاعلي
      • تجاهل كاشفات محددة
      • تجاهل كلمات مفتاحية محددة
      • تجاهل عدة ملفات من نفس النوع (باستخدام أحرف البدل)
      • تجاهل الملفات بتحديد نطاق اللغة
      • أنماط بحث مخصصة
    • تكوين عتبة الخطورة
    • Talisman كأداة سطر أوامر
      • الوضع التفاعلي
      • ماسح تاريخ Git
      • حاسبة المجموع الاختباري
  • تقارير Talisman بتنسيق HTML
    • لقطات شاشة نموذجية
  • إلغاء التثبيت
    • إلغاء التثبيت من قالب خطاف عام
    • إلغاء التثبيت من مستودع واحد
  • المساهمة في Talisman

ما هو Talisman؟

Talisman هي أداة تقوم بفحص مجموعات التغييرات في git لضمان عدم خروج الأسرار المحتملة أو المعلومات الحساسة من جهاز المطور.

تتحقق من مجموعة التغييرات الصادرة عن أي شيء يبدو مشبوهاً - مثل مفاتيح SSH المحتملة، ورموز التفويض، والمفاتيح الخاصة، إلخ.

التثبيت

يدعم Talisman أنظمة MAC OSX و Linux و Windows.

يمكن تثبيت Talisman واستخدامه بإحدى الطرق التالية:

  1. كملف تنفيذي مستقل
  2. كخطاف git كقالب خطاف git عام وأداة سطر أوامر (لفحص مستودع git)
  3. كخطاف git في مستودع git واحد

يمكن إعداد Talisman كخطاف pre-commit أو pre-push على مستودعات git.

ابحث عن التعليمات أدناه.

تنويه: لا يمكن لـTalisman اكتشاف الأسرار التي تتسلل عبر push قسري في مستودع git. يُعتقد أن push القسري له سمعة سيئة بطرق مختلفة، ونقترح على مسؤولي مستودع git تطبيق التدابير المناسبة لتأذين مثل هذه الأنشطة.

التثبيت في المسار (الطريقة الموصى بها)

نوصي بتثبيت talisman في المسار الخاص بك بحيث يكون متاحاً لأطر عمل الخطافات والنصوص البرمجية. اختر الملف الثنائي الصحيح لنظامك من صفحة الإصدارات، أو قم بتشغيل نص التثبيت:```bash bash -c "$(curl --silent https://raw.githubusercontent.com/thoughtworks/talisman/main/install.sh)"

root@kitploit:~
أو قم بتعيين متغير البيئة `INSTALL_LOCATION` لتحديد موقع مخصص للثنائي:```bash
INSTALL_LOCATION=/usr/local/bin bash -c "$(curl --silent https://raw.githubusercontent.com/thoughtworks/talisman/main/install.sh)"

أو قم بتعيين متغير البيئة VERSION إلى علامة إصدار لتثبيت إصدار معين::```bash VERSION=v1.36.0 bash -c "$(curl --silent https://raw.githubusercontent.com/thoughtworks/talisman/main/install.sh)"

root@kitploit:~
أو باستخدام linuxbrew في Linux و homebrew في macOS عن طريق تشغيل الأمر التالي في الطرفية:```bash
brew install talisman

التثبيت كقالب خطاف عام

نقدم نصوصًا برمجية تقوم بتثبيت Talisman كـ قالب خطاف pre-commit git، مما يؤدي إلى وجود Talisman ليس فقط في مستودعات git الحالية، بل أيضًا في أي مستودع جديد تقوم بعملية 'init' أو 'clone'.

  1. قم بتشغيل الأمر التالي في الطرفية لتنزيل وتثبيت الثنائي في المسار $HOME/.talisman/bin

كخطاف pre-commit: ``` bash -c "$(curl --silent https://raw.githubusercontent.com/thoughtworks/talisman/main/global_install_scripts/install.bash)"

root@kitploit:~
أو

  كخطاف ما قبل الدفع:  ```
bash -c "$(curl --silent https://raw.githubusercontent.com/thoughtworks/talisman/main/global_install_scripts/install.bash)" -- pre-push
  1. إذا لم يكن لديك TALISMAN_HOME مُعدًا في $PATH الخاص بك، سيُطلب منك اختيار مكان مناسب لتعيينه. اختر رقم الخيار حيث تقوم بتعيين مصدر ملف التعريف على جهازك.

تذكر تنفيذ source على ملف المسار أو إعادة تشغيل الطرفية. إذا اخترت تعيين $PATH لاحقًا، يُرجى تصدير TALISMAN_HOME=$HOME/.talisman/bin إلى المسار.

  1. اختر دليلاً أساسيًا حيث يجب على Talisman فحص جميع مستودعات git، وقم بإعداد خطاف git (pre-commit أو pre-push، كما تم اختياره في الخطوة 1) كرابط رمزي. لن يقوم هذا السكريبت بالكتابة فوق الخطافات الموجودة مسبقًا. إذا كان لديك خطافات موجودة، يمكنك إضافة talisman من خلال إطار عمل الخطافات
  • يمكنك تعيين متغير البيئة SEARCH_ROOT بمسار الدليل الأساسي قبل تنفيذ التثبيت حتى لا تحتاج إلى إدخاله يدويًا أثناء التثبيت

تكوين مشروع

الاستخدام مع أطر عمل الخطافات

لن يؤدي تثبيت talisman كخطاف عالميًا إلى الكتابة فوق أي خطافات موجودة. إذا وجد سكريبت التثبيت أي خطافات موجودة، فسيشير إلى ذلك فقط على وحدة التحكم. لتشغيل خطافات متعددة، نقترح استخدام إطار عمل للخطافات، مثل pre-commit أو husky. تفترض هذه التعليمات أن الملف التنفيذي لـ talisman مثبت في مكان ما على مسار النظام الخاص بك.

Pre-commit

استخدم pre-commit لإدارة الخطافات الموجودة إلى جانب Talisman. قم بالإشارة إلى pre-commit-hooks الخاص بنا في ملف .pre-commit-config.yaml الخاص بك:

root@kitploit:~
repos:
-   repo: https://github.com/thoughtworks/talisman
    rev: ''  # Use the latest release version
    hooks:
    -   id: talisman-precommit
``````yaml
-   repo: https://github.com/thoughtworks/talisman
    rev: 'v1.32.2'  # Update me!
    hooks:
      # both pre-commit and pre-push supported
      # -   id: talisman-push
      - id: talisman-commit

Husky

husky هي وحدة npm لإدارة الخطافات (hooks). أضف السطر التالي إلى تكوين pre-commit الخاص بـ husky في ملف package.json:``` talisman --githook pre-commit

root@kitploit:~
## استدعاء تاليسمان مباشرةً

بمجرد تثبيت ملف تاليسمان القابل للتنفيذ [المثبت](#install-onto-path-recommended-approach) يمكنك تكوين خطاف pre-commit مستقل لمستودع git:```bash
cd my-git-project
echo "talisman -g pre-commit" >> .git/hooks/pre-commit
chmod +x .git/hooks/pre-commit

الترقية

منذ الإصدار v0.4.4، يقوم Talisman بتحديث الملف الثنائي تلقائيًا إلى أحدث إصدار عند استدعاء الخطاف (في وقت pre-commit/pre-push، حسب الإعداد). لذا، فقط استرخِ واستمر في استخدام أحدث إصدار من Talisman دون أي جهد إضافي.

يمكن تعيين متغيرات البيئة التالية:

  1. TALISMAN_SKIP_UPGRADE: اضبطه على true إذا كنت تريد تخطي فحص الترقية التلقائي. القيمة الافتراضية هي false.
  2. TALISMAN_UPGRADE_CONNECT_TIMEOUT: الحد الأقصى لوقت الاتصال قبل إلغاء الترقية (بالثواني). القيمة الافتراضية هي 10 ثوانٍ.

إذا كنت بحاجة إلى الترقية يدويًا، فإليك الخطوات:
[مُوصى به] تحديث ملف Talisman الثنائي ونصوص الخطافات إلى أحدث إصدار:```bash curl --silent https://raw.githubusercontent.com/thoughtworks/talisman/main/global_install_scripts/update_talisman.bash > /tmp/update_talisman.bash && /bin/bash /tmp/update_talisman.bash

root@kitploit:~
قم بتحديث تاليسمان الثنائي فقط عن طريق تنفيذ:```bash
curl --silent  https://raw.githubusercontent.com/thoughtworks/talisman/main/global_install_scripts/update_talisman.bash > /tmp/update_talisman.bash && /bin/bash /tmp/update_talisman.bash talisman-binary

Talisman in action

بعد نجاح التثبيت، سيقوم Talisman بتشغيل فحوصات للأسرار الواضحة تلقائيًا قبل كل commit أو push (كما تم اختياره أثناء التثبيت). في حالة اكتشاف أي خروقات أمنية، سيعرض Talisman تقريرًا مفصلاً عن الأخطاء:```bash $ git push Talisman Report: +-----------------+-------------------------------------------------------------------------------+ | FILE | ERRORS | +-----------------+-------------------------------------------------------------------------------+ | danger.pem | The file name "danger.pem" | | | failed checks against the | | | pattern ^.+.pem$ | +-----------------+-------------------------------------------------------------------------------+ | danger.pem | Expected file to not contain hex encoded texts such as: | | | awsSecretKey=c64e8c79aacf5ddb02f1274db2d973f363f4f553ab1692d8d203b4cc09692f79 | +-----------------+-------------------------------------------------------------------------------+

root@kitploit:~
في المثال أعلاه، تم وضع علامة على الملف *danger.pem* باعتباره خرقًا أمنيًا للأسباب التالية:

* اسم الملف يطابق أحد الأنماط المكونة مسبقًا.
* يحتوي الملف على awsSecretKey الذي يتم فحصه ووضع علامة عليه بواسطة Talisman

إذا كنت قد قمت بتثبيت Talisman كخطاف pre-commit، فسيقوم بفحص _الفرق_ (_diff_) داخل كل Commit فقط. هذا يعني أنه سيبلغ عن الأخطاء فقط للأجزاء التي تم تغييرها من الملف.

في حال قمت بتثبيت Talisman كخطاف pre-push، فسيقوم بفحص الملف بالكامل الذي تم إجراء التغييرات فيه. كما ذكر أعلاه، يُنصح باستخدام Talisman كـ **خطاف pre-commit**.

## عمليات التحقق
تقوم أجهزة الكشف التالية بالتنفيذ على مجموعات التغييرات للكشف عن الأسرار/المعلومات الحساسة:

* **القيم المشفّرة** - يقوم بفحص الأسرار المشفّرة بتنسيق Base64 أو hex أو غيرهما
* **محتوى الملف** - يقوم بفحص المحتوى المشبوه في الملف الذي قد يكون أسرارًا أو كلمات مرور محتملة
* **حجم الملف** - يقوم بفحص الملفات الكبيرة التي قد تحتوي على مفاتيح أو أسرار أخرى
* **الإنتروبيا** - يقوم بفحص المحتوى ذي الإنتروبيا العالية الذي من المحتمل أن يحتوي على كلمات مرور
* **أرقام بطاقات الائتمان** - يقوم بفحص المحتوى الذي قد يكون أرقام بطاقات ائتمان محتملة
* **أسماء الملفات** - يقوم بفحص أسماء الملفات وامتداداتها التي قد تشير إلى احتمالية احتوائها على أسرار، مثل المفاتيح وبيانات الاعتماد وغيرها

## تجاهل الملفات

إذا كنت *متأكدًا جدًا* من رغبتك في دفع هذا الملف، يمكنك تكوينه في ملف `.talismanrc` في جذر المشروع. سيتم طباعة المحتويات المطلوبة لتجاهل ملفاتك الفاشلة بواسطة Talisman على وحدة التحكم فورًا بعد تقرير خطأ Talisman:```bash
If you are absolutely sure that you want to ignore the above files from talisman detectors, consider pasting the following format in .talismanrc file in the project root
fileignoreconfig:
- filename: danger.pem
  checksum: cf97abd34cebe895417eb4d97fbd7374aa138dcb65b1fe7f6b6cc1238aaf4d48
  ignore_detectors: []

إدخال هذا في ملف .talismanrc سيضمن أن يتجاهل Talisman ملف danger.pem طالما أن المجموع الاختباري يطابق القيمة المذكورة في حقل checksum.

الوضع التفاعلي

متاح فقط لمستخدمي أنظمة غير ويندوز

إذا كانت عملية نسخ المحتوى إلى .talismanrc في كل مرة تواجه فيها خطأ من Talisman أمرًا مزعجًا، يمكنك تفعيل الوضع التفاعلي والسماح لـ Talisman بمساعدتك في إضافة الملفات المراد تجاهلها بسرعة. ما عليك سوى اتباع الخطوات البسيطة التالية:

  1. افتح ملف bash profile الخاص بك حيث يتم تعيين متغيرات البيئة (.bashrc، .bash_profile، .profile أو أي موقع آخر)
  2. سترى متغير TALISMAN_INTERACTIVE تحت # >>> talisman >>>
  3. إذا لم يكن مضبوطًا على true بالفعل، أضف export TALISMAN_INTERACTIVE=true
  4. لا تنس حفظ الملف وتنفيذه (source)

هذا كل شيء! كلما وجد خطاف Talisman خطأً أثناء pre-push/pre-commit، اتبع التعليمات كما يقترحها Talisman. كن حريصًا على عدم تجاهل ملف دون التحقق من محتواه. يجب أن تكون واثقًا من عدم تسرب أي سر.

تجاهل كشافات معينة

فيما يلي وصف تفصيلي للحقول المختلفة التي يمكن تكوينها في ملف .talismanrc:

  • filename: يجب أن يذكر هذا الحقل اسم الملف المؤهل بالكامل.
  • checksum: يجب أن يحتوي هذا الحقل دائمًا على القيمة المحددة بواسطة Talisman في الرسالة المعروضة أعلاه. إذا تم إجراء تغيير جديد على الملف في أي وقت، فسيؤدي ذلك إلى إنشاء مجموع اختباري جديد وسيقوم Talisman بفحص الملف مرة أخرى بحثًا عن أي تهديدات أمنية محتملة.
  • ignore_detectors: سيقوم هذا الحقل بتعطيل كشافات معينة لملف معين. على سبيل المثال، إذا كان اسم ملف init-env.sh الخاص بك يؤدي إلى تحذير، يمكنك تعطيل هذا التحذير فقط مع الاستمرار في التنبيه إذا حدثت مشكلات أخرى (مثل محتوى الملف):```yaml fileignoreconfig:
  • filename: init-env.sh checksum: cf97abd34cebe895417eb4d97fbd7374aa138dcb65b1fe7f6b6cc1238aaf4d48 ignore_detectors: [filename, filesize]
root@kitploit:~
ملاحظة: هنا يتم تجاهل كاشفي اسم الملف وحجم الملف بالنسبة لـ `init-env.sh`، ولكن
كاشف محتوى الملف سيظل يعمل على `init-env.sh`

في الوقت الحالي، يمكنك تجاهل

* `filecontent`
* `filename`
* `filesize`

### تجاهل كلمات مفتاحية محددة

نظرًا لأن بعض ملفاتك قد تحتوي على كلمات مفتاحية مثل `key` أو `pass` والتي لا تتعلق بالضرورة بالأسرار، فقد ترغب في تجاهل هذه الكلمات المفتاحية لتقليل عدد النتائج الإيجابية الخاطئة.
يمكن تحقيق ذلك باستخدام حقل `allowed_patterns` على مستوى الملف و/أو على مستوى المستودع:```yaml
fileignoreconfig:
- filename: test
  allowed_patterns: [key]
allowed_patterns:
- keyword
- pass

في المثال السابق، key مسموح به في ملف test، و keyword و pass مسموح بهما على مستوى المستودع.

حقل allowed_patterns يدعم أيضًا التعبيرات العادية في Golang. إليك مثال بسيط على الكود حيث يمكن أن يكون RegExp في Golang مفيدًا:```sh export AWS_ACCESS_KEY_ID = AKIAIO5FODNN7EXAMPLE export AWS_ACCESS_KEY_ID=$(vault read -field=value path/to/aws-access-key-id)

root@kitploit:~
بشكل افتراضي، سيقوم Talisman بالتنبيه لكل من السطرين. في السطر الثاني، نقوم باستخراج AWS Access Key ID من Hashicorp Vault والتي لا تكشف السر للكود. إذا كان هذا النوع من الاستخدام شائعًا في كودك، فقد ترغب في إخبار Talisman بعدم التنبيه عند استخدام Vault. يمكن تحقيق ذلك من خلال تكوين مثل:```yaml
allowed_patterns:
- export\ AWS[ \w]*KEY[ \w]*=.*vault\ read.*

تجاهل عدة ملفات من نفس النوع (باستخدام أحرف البدل)

يمكنك اختيار تجاهل جميع الملفات من نوع معين، لأنك تعلم أنها ستكون آمنة دائمًا، ولا تريد أن يقوم Talisman بفحصها.

الخطوات:

  1. قم بتنسيق نمط أحرف بدل للملفات التي تريد تجاهلها. على سبيل المثال، *.lock
  2. استخدم حاسبة المجموع الاختباري لتقديم النمط والحصول على مجموع اختباري جماعي. على سبيل المثال، talisman --checksum="*.lock"
  3. انسخ كتلة fileconfig المطبوعة على وحدة التحكم إلى ملف .talismanrc.

إذا تم تعديل أي من الملفات، فسيقوم talisman بفحص الملفات مرة أخرى، إلا إذا قمت بإعادة حساب المجموع الاختباري الجديد واستبداله في ملف .talismanrc.

تجاهل الملفات عن طريق تحديد نطاق اللغة

يمكنك اختيار تجاهل الملفات عن طريق تحديد نطاق اللغة لمشروعك في ملف talismanrc الخاص بك.```yaml scopeconfig:

  • scope: go
  • scope: node
  • scope: images
  • scope: php
  • scope: python
root@kitploit:~
تم تكوين Talisman لتجاهل ملفات معينة بناءً على النطاق المحدد. على سبيل المثال، ذكر نطاق node في scopeconfig سيمنع talisman من فحص ملفات مثل yarn.lock أو package-lock.json.

يمكنك تحديد نطاقات متعددة.

حاليًا، يدعم .talismanrc دعم scopeconfig لـ go و node و php و images. سيتم إضافة نطاقات أخرى قريبًا.

### أنماط البحث المخصصة

يمكنك تحديد أنماط regex مخصصة للبحث عنها في المستودع الحالي.```yaml
custom_patterns:
- pattern1
- pattern2


ملاحظة: تم إهمال استخدام .talismanignore. يحل محله ملف .talismanrc للأسباب التالية:

  • .talismanrc له تنسيق yaml أكثر وضوحاً
  • كما أنه يجلب ممارسات أكثر أماناً مع كل تعديل لملف يحتمل أن يحتوي على قيمة حساسة ليتم مراجعتها
  • التنسيق الجديد يجلب أيضاً قابلية التوسعة لإدخال وظائف جديدة قابلة للاستخدام. ترقبوا المزيد

تكوين حد الخطورة

يرتبط كل تحقق بخطورة

  1. منخفض
  2. متوسط
  3. عالي

يمكنك تحديد حد في ملف .talismanrc الخاص بك:```yaml threshold: medium

root@kitploit:~
سيؤدي هذا إلى الإبلاغ عن جميع المشكلات ذات الخطورة المتوسطة والأعلى (سيتم الإبلاغ عن المخاطر المحتملة التي تقل عن العتبة في التحذيرات)

1. يمكن العثور على قائمة بجميع المخاطر مع مستوى خطورتها في [ملف التكوين](https://github.com/thoughtworks/talisman/blob/HEAD/detector/severity/severity_config.go) هذا.
2. بشكل افتراضي، يتم تعيين العتبة على منخفض.
3. أي أنماط بحث مخصصة تقوم بإضافتها، تعتبر ذات خطورة عالية.

## تكوين الخطورة المخصصة

يمكنك تخصيص [مستويات الأمان](https://github.com/thoughtworks/talisman/blob/HEAD/detector/severity/severity_config.go) لأجهزة الكشف التي يوفرها Talisman في ملف .talismanrc:```yaml
custom_severities:
- detector: Base64Content
  severity: medium
- detector: HexContent
  severity: low

باستخدام درجات خطورة مخصصة وعتبة خطورة، يمكن تهيئة Talisman لتنبيه فقط بما هو مهم بناءً على سياقك. يمكن أن يكون هذا مفيدًا لتقليل عدد النتائج الإيجابية الخاطئة.

Talisman كأداة CLI

إذا قمت بتنفيذ talisman في سطر الأوامر، فستتمكن من عرض جميع خيارات الوسائط التي يمكنك تمريرها``` -c, --checksum string checksum calculator calculates checksum and suggests .talismanrc format -d, --debug enable debug mode (warning: very verbose) -g, --githook string either pre-push or pre-commit (default "pre-push") --ignoreHistory scanner scans all files on current head, will not scan through git commit history -i, --interactive interactively update talismanrc (only makes sense with -g/--githook) -p, --pattern string pattern (glob-like) of files to scan (ignores githooks) -r, --reportdirectory string directory where the scan reports will be stored -s, --scan scanner scans the git commit history for potential secrets -w, --scanWithHtml generate html report (Make sure you have installed talisman_html_report to use this, as mentioned in Readme) -v, --version show current version of talisman

root@kitploit:~
### الوضع التفاعلي

عندما يكون لديك بانتظام عدد كبير جدًا من الملفات التي يتم الإبلاغ عنها بواسطة خطاف Talisman، والتي تعلم أنه يجب أن يكون من الجيد إيداعها، يمكنك استخدام هذه الميزة للسماح لـ Talisman بتسهيل العملية عليك. سيسمح لك الوضع التفاعلي بإظهار موجه من Talisman لإضافة الملفات التي تريد تجاهلها مباشرةً إلى ملف .talismanrc من موجه الأوامر.
لتمكين هذه الميزة، تحتاج إلى تعيين المتغير TALISMAN_INTERACTIVE على القيمة true في ملف bash الخاص بك.

يمكنك استدعاء Talisman في الوضع التفاعلي بإحدى الطريقتين التاليتين:
1.  افتح ملف bash الخاص بك، وأضف```export TALISMAN_INTERACTIVE=true```
Don't forget to source the bash file for the variable to take effect!

2.  Alternatively, you can also invoke the interactive mode by using the CLI utility
(for using pre-commit hook)
```talisman -i -g pre-commit```
*ملاحظة*: إذا كنت تستخدم تكامل التحكم في الإصدارات (Version Control) في بيئة التطوير المتكاملة (IDE) لعمليات git، فلن تعمل هذه الميزة. لا يزال بإمكانك استخدام اسم الملف المقترح والمجموع الاختباري لإدخالهما يدويًا في ملف `.talismanrc`.

### ماسح تاريخ Git

يمكنك الآن تشغيل Talisman من سطر الأوامر، وإضافته إلى خطط التكامل المستمر/النشر المستمر (CI/CD)، لمسح تاريخ git لمستودعك بحثًا عن أي محتوى حساس. يتضمن ذلك مسح الملفات المدرجة في ملف `.talismanrc` أيضًا.

**الخطوات**:

 1. انتقل إلى مسار دليل git المراد مسحه: `cd <directory to scan>`
 2. قم بتشغيل أمر المسح: `talisman --scan`
  * سيؤدي تشغيل هذا الأمر إلى إنشاء مجلد باسم `<i>talisman_reports</i>` في جذر الدليل الحالي وتخزين ملفات التقرير هناك.
  * يمكنك أيضًا تحديد موقع التقارير عن طريق توفير معلمة إضافية كـ `<i>--reportdirectory</i>` أو `<i>--rd</i>`
<br>على سبيل المثال: `talisman --scan --reportdirectory=/Users/username/Desktop`

يمكنك استخدام الخيارات الأخرى للمسح كما هو موضح أعلاه.

<i>حاليًا لا يدعم Talisman تجاهل الملفات للمسح.</i>

### حاسبة المجموع الاختباري

تعطي حاسبة المجموع الاختباري في Talisman تنسيق yaml يمكنك نسخه ولصقه مباشرة في ملف `.talismanrc` لتجاهل تنسيقات ملفات معينة من أدوات الكشف في Talisman.

لتشغيل المجموع الاختباري، يرجى الانتقال إلى جذر مستودعك باستخدام الأمر "cd" وتشغيل الأمر التالي

على سبيل المثال:
`talisman --checksum="*.pem *.txt"`

1. يعثر هذا الأمر على جميع ملفات `.pem` في المستودع ويحسب المجموع الاختباري الجماعي لهذه الملفات ويخرج بتنسيق yaml لملف `.talismanrc`. وبالمثل يتعامل مع ملفات `.txt`.
2. يمكن إعطاء أسماء/أنماط ملفات متعددة مفصولة بمسافات.

مثال على الإخراج:

	.talismanrc format for given file names / patterns
	fileignoreconfig:
	- filename: '*.pem'
	  checksum: f731b26be086fd2647c40801630e2219ef207cb1aacc02f9bf0559a75c0855a4
	  ignore_detectors: []
	- filename: '*.txt'
	  checksum: d9e9e94868d7de5b2a0706b8d38d0f79730839e0eb4de4e9a2a5a014c7c43f35
	  ignore_detectors: []

ملاحظة: حاسبة المجموع الاختباري تأخذ في الاعتبار الملفات المعلقة (staged files) عند حساب المجموع الاختباري الجماعي للملفات.

# تقارير Talisman بتنسيق HTML
<i>مدعوم من 		<a href="https://jaydeepc.github.io/report-mine-website/"><img class=logo align=bottom width="10%" height="10%" src="https://raw.githubusercontent.com/jaydeepc/talisman-html-report/master/img/logo_reportmine.png" /></a></i>

تأتي أداة سطر الأوامر `talisman` أيضًا مع إمكانية تقديم تقرير HTML مفصل وقابل للمشاركة. بمجرد تثبيت Talisman، يرجى اتباع الخطوات المذكورة في [talisman-html-report](https://github.com/jaydeepc/talisman-html-report)، لتثبيت حزمة إعداد التقارير في مجلد `.talisman`. لإنشاء تقرير HTML، قم بتشغيل:

* `talisman --scanWithHtml`

سيؤدي هذا إلى مسح المستودع وإنشاء مجلد `talisman_html_report` داخل المستودع الممسوح ضوئيًا. نحتاج إلى بدء تشغيل خادم HTTP داخل هذا المستودع للوصول إلى التقرير. فيما يلي طريقة موصى بها لبدء تشغيل خادم HTTP:

* `python -m SimpleHTTPServer <port> (مثال: 8000)`

يمكنك الآن الوصول إلى التقرير بالانتقال إلى:

`http://localhost:8000`

## لقطات شاشة نموذجية

* الترحيب

<img width="100%" height="70%" src="https://raw.githubusercontent.com/jaydeepc/talisman-html-report/master/sample/summary.png" />

* الملخص

<img width="100%" height="70%" src="https://raw.githubusercontent.com/jaydeepc/talisman-html-report/master/sample/execution-summary.png" />

* التقرير التفصيلي

<img width="100%" height="70%" src="https://raw.githubusercontent.com/jaydeepc/talisman-html-report/master/sample/detailed.png" />

* تقرير الأخطاء

<img width="100%" height="70%" src="https://raw.githubusercontent.com/jaydeepc/talisman-html-report/master/sample/error-report.png" />

<i> **ملاحظة**: لست بحاجة إلى بدء تشغيل خادم إذا كنت تشغل Talisman في بيئة CI أو أي بيئة مستضافة أخرى </i>

# إلغاء التثبيت

تعتمد عملية إلغاء التثبيت على كيفية تثبيت Talisman. قد تكون اخترت التثبيت كقالب خطاف عام (global hook template) أو في مستودع واحد.

يرجى اتباع الخطوات أدناه بناءً على الخيار الذي اخترته أثناء التثبيت.

## إلغاء التثبيت من قالب خطاف عام

قم بتشغيل الأمر التالي في الطرفية الخاصة بك لإلغاء تثبيت Talisman بشكل عام من جهازك.

لخطاف ما قبل الالتزام (pre-commit hook):```
bash -c "$(curl --silent https://raw.githubusercontent.com/thoughtworks/talisman/main/global_install_scripts/uninstall.bash)"

لخطاف ما قبل الدفع:``` bash -c "$(curl --silent https://raw.githubusercontent.com/thoughtworks/talisman/main/global_install_scripts/uninstall.bash)" -- pre-push

root@kitploit:~
سيؤدي هذا إلى

1.  سيطالبك بتحديد الدليل الأساسي لجميع مستودعاتك، وسيجد جميع مستودعات git بداخله ويزيل خطافات talisman
2.  إزالة خطاف talisman من .git-template
3.  إزالة talisman من موقع التثبيت المركزي ($HOME/.talisman/bin).<br>

<i>سيتعين عليك إزالة TALISMAN_HOME من متغيرات البيئة الخاصة بك يدويًا</i>

## إلغاء التثبيت من مستودع واحد
عند تثبيت Talisman، لا بد أنه أنشأ خطاف pre-commit أو pre-push (حسب ما تم اختياره) في مستودعك أثناء التثبيت.

يمكنك إزالة الخطاف يدويًا عن طريق حذف خطاف Talisman pre-commit أو pre-push من مجلد .git/hooks في المستودع.

# المساهمة في Talisman

للمساهمة في Talisman، ألقِ نظرة على [دليل المساهمة](https://github.com/thoughtworks/talisman/blob/HEAD/contributing.md) الخاص بنا.
تنزيل الأداة