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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/pvharmo2/gha-lab-f1c8785cc8
تحليل الثغرات الأمنيةالاستغلالالتعلم والتعليمموارد منسقةمختبرات وتدريب عملي
GitHubpvharmo2/gha-lab-f1c8785cc8

gha-lab-f1c8785cc8

# بيئة اختبار سير عمل GitHub Actions لإعادة إنتاج CVE-2025-46820

عرض المستودع
1منذ 4 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
The modern DOM API for PHP 7 projects

واجهة DOM الحديثة

مبنية على DOMDocument الأصلي في PHP، يوفر هذا المشروع الوصول إلى واجهات DOM الحديثة، كما تتوقع عند العمل مع كود العميل في المتصفح.

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


Build status Code quality Code coverage Current version PHP.Gt/Dom documentation

مثال على الاستخدام: مرحبًا، أنت!

ملاحظة مهمة: المثال المعروض هنا لأغراض توضيحية فقط، لكن استخدام DOM لتعيين البيانات مباشرة إلى قيم العناصر يربط المنطق بالعرض بشكل وثيق، وهو ما يُعتبر ممارسة سيئة. يرجى الاطلاع على مكتبة DomTemplate للحصول على حل أكثر متانة لربط البيانات بـ DOM.

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

هذا مثال بسيط على كيفية التعامل مع ملفات HTML المصدر كقوالب. يمكن تطبيق ذلك بسهولة على صفحات قوالب أكثر تقدمًا لتوفير محتوى ديناميكي، دون الحاجة إلى تقنيات غير قياسية مثل {{أقواس معقوفة}} للمكانات، أو بناء HTML عرضة للأخطاء من داخل PHP مثل echo '<div class='easy-mistake'>' . $content['opa'] . '</div>'.

HTML المصدر (name.html)

root@kitploit:~
<!doctype html>
<h1>
	Hello, <span class="name-output">you</span> !
</h1>

<form>
	<input name="name" placeholder="Your name, please" required />
	<button>Submit</button>
</form>

PHP المستخدم لحقن اسمك (index.php)

root@kitploit:~
<?php
use Gt\Dom\HTMLDocument;
use Gt\Dom\HTMLElement\HTMLSpanElement;
require "vendor/autoload.php";

$html = file_get_contents("name.html");
$document = new HTMLDocument($html);

if(isset($_GET["name"])) {
	$span = $document->querySelector(".name-output");
	$span->innerText = $_GET["name"];
}

echo $document;

الميزات في لمحة

  • متوافق مع المعيار الحي لـ DOM الخاص بـ W3C:
    • يمثل نوع Element جميع مواصفات HTMLElement، مثل HTMLAnchorElement (<a>) وHTMLButtonElement (<button>) وHTMLInputElement (<input>) وHTMLTableSectionElement (<thead> و<tbody> و<tfoot>) وغيرها. يمكن اكتشاف النوع المحدد باستخدام Element::getElementType()، والذي يُرجع إحدى قيم تعداد ElementType.
    • امتدادات DOMException لالتقاط أنواع مختلفة من الاستثناءات، مثل EnumeratedValueException وHierarchyRequestError وIndexSizeException وغيرها.
    • وظائف جانب العميل مُنشأة بشكل مبدئي بما في ذلك فئات لـ FileList وStyleSheet وVideoTrackList وWindowProxy وغيرها.
  • وظائف مستوى DOM 4+:
    • الإشارة إلى العناصر باستخدام محددات CSS عبر Element::querySelector() و(Element::querySelectorAll())
    • إضافة/إزالة/تبديل فئات العناصر باستخدام ClassList
    • التنقل بين عقد العناصر فقط باستخدام Element::previousElementSibling وElement::nextElementSibling وElement::children وElement::lastElementChild وfirstElementChild وغيرها.
    • إدراج وإزالة العقد الفرعية باستخدام و و و
  • خصائص قياسية على HTMLDocument:
    • anchors
    • forms
    • image
    • links
    • scripts
    • title

القيود المعروفة / الامتثال لمواصفات W3C

يهدف هذا المستودع إلى أن يكون دقيقًا قدر الإمكان مع مواصفات DOM على https://dom.spec.whatwg.org/ - اعتبارًا من الإصدار v4.0.0، تم تنفيذ جميع الوظائف مع الانحرافات البسيطة التالية عن المعيار والتي لا يمكن تجنبها:

  • خاصية tagName للعناصر تكون بأحرف كبيرة.
  • للتحقق من نوع HTMLElement، يجب استدعاء Element::getElementType() - لا تتوفر فئات فرعية من Element للاستخدام مع instanceof، على سبيل المثال.
  • تحدد مواصفات DOM وظائف لا يمكن تنفيذها إلا على جانب العميل. على سبيل المثال، يُرجع HTMLInputElement::files كائن FileList يعدّد جميع الملفات التي يحددها المستخدم من خلال واجهة المتصفح. هذا النوع من الوظائف يستحيل تنفيذه على جانب الخادم، لكن تم إنشاؤه بشكل مبدئي للاتساق مع المواصفات. محاولة استخدام وظائف جانب العميل داخل هذه المكتبة تُلقي استثناء ClientSideOnlyFunctionalityException.

ميزات ربط البيانات وقوالب الصفحات

يهدف هذا المستودع إلى أن يكون دقيقًا قدر الإمكان مع مواصفات DOM. يتوفر امتداد للمستودع على https://php.gt/domtemplate يضيف قوالب الصفحات وربط البيانات من خلال عناصر مخصصة وسمات قوالب، مما يقدم وظائف جانب الخادم مثل تلك الموجودة في WebComponents.

HTMLDocument الأصلي في PHP 8.4

منذ إصدار PHP 8.4، تم تضمين فئة HTMLDocument أصلية جديدة في PHP. مع وجود روابط أصلية، تكون جميع العمليات أسرع بكثير. بدأ العمل لجعل تنفيذ PHPGT لـ Dom يستخدم الكود الأصلي الجديد. لحسن الحظ، فإن DOM معيار محدد جيدًا جدًا، لذا مهما حدث، ستكون التغييرات المطلوبة على كودك ضئيلة أو معدومة.

ألقِ نظرة على المعايير على فرع php84-benchmark بنفسك: معظم العمليات مسجلة بزيادة سرعة تبلغ 90% أو أكثر عند التحول إلى التنفيذ الأصلي!

سيتم عرض مزيد من المعلومات في ملف readme عند إنجاز المزيد من العمل نحو تنفيذ الفئات الأصلية.

تنزيل الأداة
ChildNode::remove()
ChildNode::before
ChildNode::after
ChildNode::replaceWith()