Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
invisible_playwright — Playwright التي لا تستطيع أنظمة مكافحة الروبوتات رؤيتها، لذا لا توجد اختبارات CAPTCHA: نفس واجهة API، متصفح Firefox بلا واجهة رسومية يتخفى من أنظمة مكافحة الكشف، بصمة غير قابلة للكشف، تجاوز كشف الروبوتات، استخراج بيانات الويب وأتمتة المتصفح باستخدام Python. | Kitploit
أدوات/GitHubGitHub/feder-cr/invisible_playwright
التهرب من IDS/IPSأدوات انتحال الشخصيةأمن الويبمكافحة الروبوتاتانتحال البصمة الرقميةتجاوز كابتشا
GitHubfeder-cr/invisible_playwright

invisible_playwright

Playwright التي لا تستطيع أنظمة مكافحة الروبوتات رؤيتها، لذا لا توجد اختبارات CAPTCHA: نفس واجهة API، متصفح Firefox بلا واجهة رسومية يتخفى من أنظمة مكافحة الكشف، بصمة غير قابلة للكشف، تجاوز كشف الروبوتات، استخراج بيانات الويب وأتمتة المتصفح باستخدام Python.

عرض المستودع
1.8k201307منذ 3 أيامتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
<div align="center">
<picture>
  <source media="(max-width: 374px) and (prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/feder-cr/invisible_playwright/main/docs/banner-small-dark.gif">
  <source media="(max-width: 374px)" srcset="https://raw.githubusercontent.com/feder-cr/invisible_playwright/main/docs/banner-small-light.gif">
  <source media="(max-width: 1239px) and (prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/feder-cr/invisible_playwright/main/docs/banner-phone-dark.gif">
  <source media="(max-width: 1239px)" srcset="https://raw.githubusercontent.com/feder-cr/invisible_playwright/main/docs/banner-phone-light.gif">
  <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/feder-cr/invisible_playwright/main/docs/banner-dark.gif">
  <img alt="invisible_playwright، Playwright على Firefox مضاد للكشف. رسوم متحركة: التبديل المكوّن من سطرين من Playwright، والبصمة المضبوطة داخل المحرك، وفأرة تتحرك كاليد، واختبارات البوت التي يجتازها." src="https://raw.githubusercontent.com/feder-cr/invisible_playwright/main/docs/banner-light.gif" width="100%">
</picture>
<h3 align="center">يتم كشف Playwright بواسطة أنظمة مكافحة البوتات والكابتشا.<br>
هذا الإصدار يعمل على Firefox مضاد للكشف ببصمة غير قابلة للاكتشاف، ومتوافق مع كود Playwright الحالي لديك.</h3>
</div>

![invisible_playwright - 5/5 detection suites passed](https://assets.kitploit.com/production/public/readmes/7462/e23d5b9ad68fbaf1e80c3e7f70118a4e135514dc069f0b6d27076f6af3e23051.gif)

## كيف يعمل

تطرح أنظمة مكافحة البوتات سؤالين، ويقيّم reCAPTCHA وhCaptcha وCloudflare Turnstile الإجابات. يجيب invisible_playwright بـ"نعم" على كليهما.

**1. هل هذا متصفح حقيقي؟** نعم. إنه Firefox، مُعدَّل على مستوى الكود المصدري بلغة C++.

- تُضبط بصمة المتصفح داخل المحرك، لا تُحقن في الصفحة: navigator، والشاشة، وGPU/WebGL، والكانفاس، والخطوط، والصوت، وWebRTC، والمنطقة الزمنية، والشبكة. سواء في الوضع بلا واجهة أو بواجهة، القيم نفسها في الحالتين.
- لا طبقة JS وسيطة، ولا تجاوز، ولا أثر يمكن قراءته.

**2. هل يستخدمه شخص حقيقي؟** نعم. الإجراءات مُحوَّلة إلى سلوك بشري في المشغّل.

- كل نقرة وتمرير وسحب يتبع مسار فأرة طبيعيًا بتوقيت بشري، دون مؤشر يقفز.
- كل إدخال مطابق بايتًا ببايت لفأرة حقيقية: مصدر إدخال حقيقي، وضغط، وأحداث موثوقة.

---

## التثبيت

Windows، في PowerShell:

```powershell
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
$env:Path = "$env:USERPROFILE\.local\bin;$env:Path"
uv init --python ">=3.11" my-project
cd my-project
uv add invisible-playwright
uv run invisible-playwright fetch      # one-time download, sha256-verified: 240 MB, about 550 MB unpacked
```

Linux:

```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
source $HOME/.local/bin/env
uv init --python ">=3.11" my-project
cd my-project
uv add invisible-playwright
uv run invisible-playwright fetch      # one-time download, sha256-verified: 262 MB (x86_64) / 253 MB (arm64), about 550 MB unpacked
```

المنصات المدعومة: **Windows x86_64**، **Linux x86_64 / arm64**.

ثم احفظ أحد الأمثلة أدناه باسم `main.py` في `my-project` وشغّله باستخدام `uv run main.py`.

---

## الاستخدام
### بصمة عشوائية لكل جلسة
**واجهة Playwright البرمجية، المتزامنة وغير المتزامنة، دون أي تغييرات في الكود.** نفس الكائنات، نفس الاستدعاءات، نفس القيم المُعادة. بعض الأسطح خارج النطاق - التتبع (tracing)، وHAR، وCDP، وسياق طلبات API - وكل واحد منها يرفض بجملة توضح السبب بدلاً من أن يسيء التصرف بصمت. إذا كنت تستخدم Playwright بالفعل، فإن التبديل يتم بسطرين:

```diff
- from playwright.sync_api import sync_playwright
- with sync_playwright() as p:
-     browser = p.firefox.launch()
+ from invisible_playwright import InvisiblePlaywright
+ with InvisiblePlaywright() as browser:
```

كل جلسة تحصل على بصمة مميزة (GPU، الصوت، الخطوط، الشاشة، ~200 حقل) وحركة فأرة بمنحنيات بيزييه.

**المزامنة**
```python
from invisible_playwright import InvisiblePlaywright

with InvisiblePlaywright(proxy={"server": "socks5://...", "username": "u", "password": "p"}) as browser:
    page = browser.new_page()
    page.goto("https://example.com")
    page.click("#submit")   # mouse arcs to the button on a Bezier curve
```

**غير متزامن**
```python
from invisible_playwright.async_api import InvisiblePlaywright

async with InvisiblePlaywright(proxy={"server": "socks5://...", "username": "u", "password": "p"}) as browser:
    page = await browser.new_page()
    await page.goto("https://example.com")
    await page.click("#submit")
```

كائن `browser` هو `playwright.sync_api.Browser` / `playwright.async_api.Browser` - كل طريقة من طرق Playwright تعمل كما هي.

سجّل البذرة (seed) لإعادة تشغيل الجولة:

```python
sf = InvisiblePlaywright()
with sf as browser:
    print("seed =", sf.seed)
    # ...
```

### بصمة قابلة لإعادة الإنتاج

```python
with InvisiblePlaywright(seed=42) as browser:
    ...   # same GPU, same canvas hash, same audio context, every run
```

### الوكلاء

```python
proxy = {
    "server": "socks5://gate.example.com:1080",
    "username": "user",
    "password": "pass",
}
with InvisiblePlaywright(proxy=proxy) as browser:
    ...
```

المخططات المدعومة: `socks5`، `socks4`، `http`، `https`. يتم توجيه DNS عبر البروكسي افتراضيًا، دون تسريب محلي.

### المنطقة الزمنية

تتبع المنطقة الزمنية للمتصفح المعامل `timezone=`:

```python
# default: timezone is auto-derived from the egress IP (proxy egress if a
# proxy is set, otherwise the host's own public IP)
with InvisiblePlaywright(proxy=proxy) as browser:
    ...

# explicit IANA zone always wins, the only way to force a specific zone
with InvisiblePlaywright(proxy=proxy, timezone="America/New_York") as browser:
    ...
```

### تثبيت حقول بصمة محددة

افتراضيًا يأتي كل شيء من `seed`. لفرض قيم محددة بينما يبقى الباقي مشتقًا من البذرة:

```python
with InvisiblePlaywright(
    seed=42,
    pin={
        "gpu.renderer": "ANGLE (AMD, Radeon R9 200 Series Direct3D11 vs_5_0 ps_5_0, D3D11)",
        "gpu.vendor":   "Google Inc. (AMD)",
        "screen.width":  2560,
        "screen.height": 1440,
        "hardware.concurrency": 16,
    },
) as browser:
    ...
```

اختيار GPU pin لواحد من الـ personas المُتحقَّق منها بدلاً من تعيين سلسلة نصية حرة،
لأن قيم `getParameter` البالغ عددها ~81 وقائمة الإضافات تنتقل مع
اسم الـ renderer ويتحقق منها كاشف مقابل الاسم. أي اسم لا يحمله التجمع
يُثير خطأً، ويُدرج الخطأ الأسماء التي يحملها.

القائمة الكاملة للمفاتيح القابلة للتثبيت، وكيفية تفاعل التثبيت مع عيّنة Bayesian، والأنماط الشائعة موجودة في **[docs/pinning.md](https://github.com/feder-cr/invisible_playwright/blob/main/docs/pinning.md)**.

---

## CLI

الأمر المثبَّت هو `invisible-playwright`، بشرطة. ويعمل `python -m
invisible_playwright` بالطريقة نفسها تماماً ولا يحتاج إلى شيء على PATH.

```bash
invisible-playwright fetch    # download the engine if missing, check every cached
                              # one against the seal, print the path
invisible-playwright version  # wrapper, core and engine versions, and where the
                              # engine is cached
```

## الوثائق والأدلة والمقارنات

**إذا كنت تفضّل التوجيه النصي على كتابة السكربت.** هذه الصفحة هي المحرك، على هيئة مكتبة
Python. طريقتان لاستخدامه دون كتابة شيفرة، كلتاهما بسطر واحد: من عميل MCP
لديك بالفعل (Claude Code، Claude Desktop، Cursor)،
`claude mcp add stealth -- uvx aihawk`، انظر
[صفحة خادم MCP](https://github.com/feder-cr/AIHawk/wiki/mcp-server)؛ أو بواجهة
ونموذج مضمّنين، لا يحتاجان سوى مفتاح OpenRouter،
`uvx aihawk ui --openrouter-key sk-or-...`، انظر
[AIHawk](https://github.com/feder-cr/AIHawk). المحرك نفسه في الأسفل، والثاني
عميل للأول.

كل ذلك يُقرأ بشكل أفضل، وقابل للبحث، في
**[الويكي](https://github.com/feder-cr/invisible_playwright/wiki)**،
منظَّمًا في أربعة أقسام بدلًا من قائمة مسطّحة واحدة:

- **[التوثيق](https://github.com/feder-cr/invisible_playwright/blob/main/docs/documentation.md)** -
  التثبيت، والتبديل المكوّن من سطرين من Playwright العادي، وإعداد
  البروكسي/المنطقة الزمنية، وتثبيت حقول محددة، وواجهة سطر الأوامر.
- **[الأدلة](https://github.com/feder-cr/invisible_playwright/blob/main/docs/guides.md)** - كيف يعمل
  الكشف فعليًا، في سبع مجموعات: هوية المتصفح، وcanvas/WebGL/الخطوط/
  الصوت، والشبكة وWebRTC، وطبقة الأتمتة، ووكلاء الذكاء الاصطناعي، والكاشفات نفسها
  مشروحة من الشيفرة المصدرية، والاختبار.
- **[المقارنات](https://github.com/feder-cr/invisible_playwright/blob/main/docs/comparisons.md)** -
  مع Camoufox وPatchright وnodriver وplaywright-stealth، وحجة
  تفضيل Firefox على Chromium عمومًا.
- **[التكاملات](https://github.com/feder-cr/invisible_playwright/blob/main/docs/integrations)** -
  Scrapy وCrawlee وRobot Framework وCodeceptJS ومشغّلات الاختبار وPlaywright MCP، و
  الأطر التي لا تناسبه، بالاسم.

إذا لم تعرف من أين تبدأ: [ثلاث طرق لجعل Playwright غير قابل للكشف](https://github.com/feder-cr/invisible_playwright/blob/main/docs/playwright-stealth-levels.md)
هي الخريطة التي تعود إليها معظم الصفحات الأخرى، و[كشف Playwright كروبوت على موقع واحد](https://github.com/feder-cr/invisible_playwright/blob/main/docs/playwright-detected-as-bot.md)
هو ترتيب استكشاف الأخطاء، و[navigator.webdriver ليس الدليل الذي تظنه](https://github.com/feder-cr/invisible_playwright/blob/main/docs/navigator-webdriver-explained.md)
يشرح أشهر خاصية في هذا المجال ولماذا لا يجدي ترقيعها وحدها شيئًا تقريبًا.

يغطي قسم الكاشفات الآن منتجات مكافحة الروبوتات التجارية بالاسم، كلٌّ منها
مقروء من توثيقه الخاص أو من هندسة عكسية مؤكدة:
[Cloudflare Bot Management](https://github.com/feder-cr/invisible_playwright/blob/main/docs/cloudflare-bot-management-explained.md) و
[Turnstile](https://github.com/feder-cr/invisible_playwright/blob/main/docs/cloudflare-turnstile-explained.md)،
[DataDome](https://github.com/feder-cr/invisible_playwright/blob/main/docs/datadome-explained.md)، [Kasada](https://github.com/feder-cr/invisible_playwright/blob/main/docs/kasada-explained.md)،
[Akamai Bot Manager](https://github.com/feder-cr/invisible_playwright/blob/main/docs/akamai-bot-manager-explained.md)،
[PerimeterX](https://github.com/feder-cr/invisible_playwright/blob/main/docs/perimeterx-explained.md)، [hCaptcha](https://github.com/feder-cr/invisible_playwright/blob/main/docs/hcaptcha-explained.md)،
[Imperva](https://github.com/feder-cr/invisible_playwright/blob/main/docs/imperva-incapsula-explained.md)، و
[بقية المجموعة](https://github.com/feder-cr/invisible_playwright/blob/main/docs/guides-detectors-explained.md).

## مشاريع ذات صلة

**الأجزاء الأخرى من هذا المشروع.** المحرك هو الأوسط من ثلاثة، والاثنان
حوله هما كيف يصل إليه معظم الناس:

- **[invisible_core](https://github.com/feder-cr/invisible_core)** - من البذرة إلى
  البصمة إلى التفضيلات، إضافة إلى البروكسي والموقع الجغرافي. هذه الحزمة تثبّته.
- **[AIHawk](https://github.com/feder-cr/AIHawk)** - هذا المحرك كخادم
  MCP (`uvx aihawk`، لأي عميل يجلب
  نموذجه الخاص) وفي الحزمة نفسها، واجهة مع نموذج مضمّن، من
  أمر واحد. الواجهة عميل للخادم، دون مسار خاص
  إلى المتصفح.

**الجيران مفتوحو المصدر.** أيّهم يناسبك يعتمد على الطبقة التي تقع فيها مشكلتك،
وعلى ما إذا كنت تحتاج Firefox أم Chromium:
[ثلاث طرق لجعل Playwright غير قابل للكشف](https://github.com/feder-cr/invisible_playwright/blob/main/docs/playwright-stealth-levels.md) تتناول
ما يمكن لكل طبقة الوصول إليه، و[وكلاء المتصفح بالذكاء الاصطناعي والتخفي](https://github.com/feder-cr/invisible_playwright/blob/main/docs/ai-browser-agents-stealth.md)
يغطي الأطر التي تختار Chromium بدلًا من CDP نيابةً عنك.

**على جانب Firefox**

- **[Camoufox](https://github.com/daijro/camoufox)** - يُرقّع C++ أيضًا، سطح أوسع، ويشحن قاعدة بيانات بصمات بدلًا من اشتقاق واحدة من بذرة. [مقارنة](https://github.com/feder-cr/invisible_playwright/blob/main/docs/vs-camoufox.md).
- **[LibreWolf](https://librewolf.net)** - فايرفوكس بإعدادات خصوصية افتراضية للتصفح به، لا لأتمتته.
- **[arkenfox/user.js](https://github.com/arkenfox/user.js)** - تحصين عبر التفضيلات. حيث يكفي تفضيل، استخدمه.

**على جانب Chromium**

- **[Patchright](https://github.com/Kaliiiiiiiiii-Vinyzu/patchright)** - نسخة معدّلة (fork) من Playwright: يجري العمل في المشغّل (driver)، وليس في الملف التنفيذي. [مقارنة](https://github.com/feder-cr/invisible_playwright/blob/main/docs/vs-patchright.md).
- **[nodriver](https://github.com/ultrafunkamsterdam/nodriver)** - خليفة `undetected-chromedriver`، يقود Chrome عبر CDP. [مقارنة](https://github.com/feder-cr/invisible_playwright/blob/main/docs/vs-nodriver.md).
- **[rebrowser-patches](https://github.com/rebrowser/rebrowser-patches)** - يعالج تسريب `Runtime.enable` في CDP. [مقارنة](https://github.com/feder-cr/invisible_playwright/blob/main/docs/vs-rebrowser-patches.md).
- **[fingerprint-suite](https://github.com/apify/fingerprint-suite)** - مولّد بصمات إصبع بايزي، يُحقن بعد ذلك في الصفحة. [مقارنة](https://github.com/feder-cr/invisible_playwright/blob/main/docs/vs-fingerprint-suite.md).
- **[playwright-with-fingerprints](https://github.com/bablosoft/playwright-with-fingerprints)** - قيم من خدمة عن بُعد مدفوعة، لنظام Windows فقط. [مقارنة](https://github.com/feder-cr/invisible_playwright/blob/main/docs/vs-playwright-with-fingerprints.md).
- **[playwright-stealth](https://github.com/Mattwmaster58/playwright_stealth)** - رقعة عبر init-script؛ ويصفها القائم عليها بأنها إثبات مفهوم. [مقارنة](https://github.com/feder-cr/invisible_playwright/blob/main/docs/vs-playwright-stealth.md).
- **[puppeteer-extra-plugin-stealth](https://github.com/berstend/puppeteer-extra)** - الأصل في هذا النسل، وآخر commit جوهري في منتصف 2024. [ماذا يعني ذلك](https://github.com/feder-cr/invisible_playwright/blob/main/docs/puppeteer-extra-stealth-unmaintained.md).
- **[selenium-stealth](https://github.com/diprajpatra/selenium-stealth)** - النهج نفسه على Selenium، وآخر commit في ديسمبر 2021. [ماذا يعني ذلك](https://github.com/feder-cr/invisible_playwright/blob/main/docs/selenium-stealth-unmaintained.md).
- **[pyppeteer](https://github.com/pyppeteer/pyppeteer)** - غير مُصان بحسب README الخاص به، الذي يشير إلى `playwright-python`. [عمّا تتحدث هذه التوصية](https://github.com/feder-cr/invisible_playwright/blob/main/docs/pyppeteer-unmaintained-playwright.md).

---

## ما الذي يُعدَّل في المحرك

تنطبق قاعدتان على كل ما يلي. فكل قيمة تُحدَّد **قبل أن تتمكن الصفحة من
السؤال**، داخل المتصفح، فلا يوجد shim بلغة JavaScript يمكن العثور عليه. وكل قيمة
تأتي من **ملف تعريف واحد**، فلا تتناقض أي واجهتين مع بعضهما، وهو ما يُكشف به عادةً
المتصفح المنتحل. المصدر:
[feder-cr/firefox_antidetect_patch](https://github.com/feder-cr/firefox_antidetect_patch).

**الهوية**
- يُشتق `navigator` ووكيل المستخدم وتلميحات العميل معًا، فلا يمكن أن تتعارض: [هل يضبط Playwright قيمة navigator.webdriver](https://github.com/feder-cr/invisible_playwright/blob/main/docs/does-playwright-set-navigator-webdriver.md)، [تلميحات العميل وSec-Fetch](https://github.com/feder-cr/invisible_playwright/blob/main/docs/client-hints-sec-fetch.md).
- `navigator.languages` وترويسة `Accept-Language` هما الإقرار نفسه، يُرسَلان ويُقرآن: [Accept-Language وnavigator.languages](https://github.com/feder-cr/invisible_playwright/blob/main/docs/accept-language-navigator-languages.md).
- هندسة الشاشة و`devicePixelRatio` واستعلامات الوسائط التي تكشفه مُعلَنة، لا مقروءة من المضيف: [devicePixelRatio وإعداد Firefox المسبق](https://github.com/feder-cr/invisible_playwright/blob/main/docs/devicepixelratio-firefox-pref.md)، [بصمة استعلامات الوسائط في CSS](https://github.com/feder-cr/invisible_playwright/blob/main/docs/css-media-query-fingerprinting.md).

**العرض**
- قراءة Canvas حتمية لكل seed وتحافظ على الشكل الحقيقي، بدلًا من الحجب أو التشويش: [canvas fingerprint noise](https://github.com/feder-cr/invisible_playwright/blob/main/docs/canvas-fingerprint-noise.md)، [why a canvas fingerprint changes every run](https://github.com/feder-cr/invisible_playwright/blob/main/docs/canvas-fingerprint-changes-every-run.md).
- يُبلّغ WebGL عن شخصية GPU متماسكة: يتم التحقق المتقاطع من البائع والمُصيّر وحدود المعاملات، لا ضبطها واحدًا تلو الآخر: [WebGL renderer strings](https://github.com/feder-cr/invisible_playwright/blob/main/docs/webgl-renderer-strings.md)، [WebGL parameters are identical](https://github.com/feder-cr/invisible_playwright/blob/main/docs/webgl-parameters-are-identical.md).
- تُشحن الخطوط مع المتصفح، لذا توجد نفس الوجوه على كل مضيف ولم يعد محرك خطوط المنصة هو من يختار: [bundled fonts across platforms](https://github.com/feder-cr/invisible_playwright/blob/main/docs/bundled-fonts-cross-platform.md)، [why headless browsers render different fonts](https://github.com/feder-cr/invisible_playwright/blob/main/docs/headless-fonts-differ.md)، [detecting installed fonts from JavaScript](https://github.com/feder-cr/invisible_playwright/blob/main/docs/detect-installed-fonts-javascript.md).
- تتبع مقاييس النص تلك الخطوط: يُرجع `measureText` أكثر من عشرة أرقام من استدعاء واحد، دون طلب إذن: [measureText and TextMetrics](https://github.com/feder-cr/invisible_playwright/blob/main/docs/measuretext-textmetrics-fingerprinting.md).
- يتوافق Canvas وWebGL عبر أنظمة التشغيل لنفس الـ seed: [cross-platform consistency](https://github.com/feder-cr/invisible_playwright/blob/main/docs/canvas-webgl-cross-platform-consistency.md)، [canvas differs across operating systems](https://github.com/feder-cr/invisible_playwright/blob/main/docs/canvas-differs-across-operating-systems.md).

**الصوت والوسائط**
- تستجيب حزمة الصوت من الملف الشخصي بدلًا من جهاز المضيف: [AudioContext fingerprinting](https://github.com/feder-cr/invisible_playwright/blob/main/docs/audiocontext-fingerprinting.md)، [sample rate and latency](https://github.com/feder-cr/invisible_playwright/blob/main/docs/audiocontext-samplerate-latency-fingerprint.md).
- جدول الترميزات معلن، لذا لا يجيب مضيف Linux على سؤال Windows بدعم Linux: [codec fingerprinting](https://github.com/feder-cr/invisible_playwright/blob/main/docs/codec-fingerprinting.md).

**الشبكة**
- يقدّم WebRTC مرشحًا اصطناعيًا واحدًا يحمل مخرج الوكيل، بدلًا من تسريب العنوان الحقيقي أو عدم تقديم أي شيء، وهو بحد ذاته مؤشر دال: [WebRTC ICE candidate spoofing](https://github.com/feder-cr/invisible_playwright/blob/main/docs/webrtc-ice-candidate-spoofing.md)، [does the WebRTC IP match the proxy exit](https://github.com/feder-cr/invisible_playwright/blob/main/docs/webrtc-ip-match-proxy-exit.md).
- يتم حل DNS عبر الوكيل، بما في ذلك عندما لا يكون الوكيل في التفضيلات: [does a proxy leak DNS](https://github.com/feder-cr/invisible_playwright/blob/main/docs/does-a-proxy-leak-dns-doh-explained.md)، [how to check for a proxy IP leak](https://github.com/feder-cr/invisible_playwright/blob/main/docs/how-to-check-proxy-ip-leak.md).
- تأتي المنطقة الزمنية من عنوان IP الصادر، ويُحلّ ذلك دون اتصال، لذا تتطابق مع المخرج: [timezone and proxy mismatch](https://github.com/feder-cr/invisible_playwright/blob/main/docs/timezone-proxy-mismatch.md)، [offline GeoIP timezone](https://github.com/feder-cr/invisible_playwright/blob/main/docs/offline-geoip-timezone-proxy.md).

**طبقة الأتمتة**
- تأتي أحداث الإدخال من مسار الإدخال الحقيقي، لذا تكون `isTrusted` صحيحة لأنها صحيحة فعلًا: [Playwright clicks and isTrusted](https://github.com/feder-cr/invisible_playwright/blob/main/docs/playwright-clicks-istrusted.md).
- يتبع المؤشر مسارًا وتوقيتًا بشريين، بإيقاع يمكن لجهاز حقيقي أن ينتجه: [human mouse movement](https://github.com/feder-cr/invisible_playwright/blob/main/docs/human-mouse-movement.md)، [mouse dynamics as behavioural biometrics](https://github.com/feder-cr/invisible_playwright/blob/main/docs/mouse-dynamics-behavioural-biometrics.md).
- لا يجيب سطح المصحح (debugger) على أسئلة التوقيت التي تفضح متصفحًا مُدارًا: [debugger timing detection](https://github.com/feder-cr/invisible_playwright/blob/main/docs/debugger-timing-detection.md).
- جذور الظل في الوضع المغلق (closed-mode shadow roots) قابلة للوصول، وهو ما لا يستطيعه Playwright القياسي في أي من المحركين، بينما لا تزال الصفحة تقرأ `null`: [closed shadow roots](https://github.com/feder-cr/invisible_playwright/blob/main/docs/closed-shadow-root-playwright.md).

---

## الترخيص

MIT - راجع [LICENSE](https://github.com/feder-cr/invisible_playwright/blob/main/LICENSE). يُوزَّع ملف Firefox الثنائي المُرقَّع بموجب MPL-2.0 (ترخيص Firefox الأصلي). توجد تصحيحات C++ على mozilla-central التي تنتج ذلك الملف الثنائي في [feder-cr/firefox_antidetect_patch](https://github.com/feder-cr/firefox_antidetect_patch).

---

## إخلاء المسؤولية

هذا المشروع لأغراض تعليمية فقط. يُقدَّم كما هو، دون أي ضمانات. لا أتحمل أي مسؤولية عن كيفية استخدامه. استخدمه على مسؤوليتك الخاصة وبما يتوافق مع قوانين ولايتك القضائية.

---

<p align="center">
  صُنع بواسطة <a href="https://it.linkedin.com/in/federico-elia-5199951b6">Federico Elia</a>
  &nbsp;<a href="https://it.linkedin.com/in/federico-elia-5199951b6"><img src="https://raw.githubusercontent.com/feder-cr/invisible_playwright/main/docs/badges/linkedin.svg" alt="LinkedIn"></a>
</p>

<p align="center">
  <a href="https://github.com/feder-cr/invisible_playwright/actions/workflows/tests.yml"><img src="https://github.com/feder-cr/invisible_playwright/actions/workflows/tests.yml/badge.svg" alt="tests"></a>
  <a href="https://github.com/feder-cr/invisible_playwright/blob/main/LICENSE"><img src="https://raw.githubusercontent.com/feder-cr/invisible_playwright/main/docs/badges/license.svg" alt="License: MIT"></a>
  <a href="https://www.python.org/downloads/"><img src="https://raw.githubusercontent.com/feder-cr/invisible_playwright/main/docs/badges/python.svg" alt="Python 3.11+"></a>
  <a href="https://github.com/feder-cr/firefox_antidetect_patch/releases"><img src="https://raw.githubusercontent.com/feder-cr/invisible_playwright/main/docs/badges/firefox.svg" alt="Firefox 151.0"></a>
  <img src="https://raw.githubusercontent.com/feder-cr/invisible_playwright/badges/docs/badges/launches.svg" alt="browser launches">
  <a href="https://github.com/feder-cr/invisible_playwright/stargazers"><img src="https://raw.githubusercontent.com/feder-cr/invisible_playwright/badges/docs/badges/stars.svg" alt="GitHub stars"></a>
</p>
تنزيل الأداة