Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Tools/GitHubGitHub/pvharmo2/gha-lab-f1c8785cc8
SchwachstellenanalyseExploitationLernen & BildungKuratierte RessourcenLabs & Praxis
GitHubpvharmo2/gha-lab-f1c8785cc8

gha-lab-f1c8785cc8

GitHub Actions-Workflow-Sandbox zur Reproduktion von CVE-2025-46820

Repository anzeigen
1vor 3 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
The modern DOM API for PHP 7 projects

Moderne DOM-API

Dieses Projekt basiert auf dem nativen DOMDocument von PHP und bietet Zugriff auf moderne DOM-APIs, wie man es von clientseitigem Code im Browser gewohnt ist.

Die Durchführung von DOM-Manipulationen im serverseitigen Code verbessert die Art und Weise, wie dynamische Seiten erstellt werden können. Die Nutzung einer standardisierten objektorientierten Schnittstelle bedeutet, dass die Seite vorverarbeitet werden kann – zum Vorteil von Browsern, Webservern und Content-Delivery-Netzwerken.


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

Beispielverwendung: Hallo, du!

Wichtiger Hinweis: Das hier gezeigte Beispiel dient nur zur Veranschaulichung. Die direkte Zuweisung von Daten an die Werte von Elementen über das DOM koppelt die Logik jedoch eng an die Ansicht, was als schlechte Praxis gilt. Bitte sieh dir die Bibliothek DomTemplate für eine robustere Lösung zur Datenbindung an das DOM an.

Stell dir eine Seite mit einem Formular vor, das ein Eingabefeld für deinen Namen enthält. Wenn das Formular abgeschickt wird, soll die Seite dich mit deinem Namen begrüßen.

Dies ist ein einfaches Beispiel dafür, wie HTML-Quelldateien als Vorlagen behandelt werden können. Dies lässt sich leicht auf fortgeschrittenere Vorlagenseiten anwenden, um dynamische Inhalte bereitzustellen – ohne nicht standardisierte Techniken wie {{geschweifte Klammern}} für Platzhalter oder fehleranfällige HTML-Konstruktion aus PHP heraus wie echo '<div class='easy-mistake'>' . $content['opa'] . '</div>'.

Quell-HTML (name.html)

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

<form>
	<input name="name" placeholder="Dein Name, bitte" required />
	<button>Absenden</button>
</form>

PHP zum Einfügen deines Namens (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;

Funktionen auf einen Blick

  • Kompatibel mit dem DOM Living Standard des W3C:
    • Der Typ Element repräsentiert alle HTMLElement-Spezifikationen, wie HTMLAnchorElement (<a>), HTMLButtonElement (<button>), HTMLInputElement (<input>), HTMLTableSectionElement (<thead>, <tbody>, <tfoot>) usw. Der jeweilige Typ kann mit Element::getElementType() erkannt werden, das einen der ElementType-Enum-Werte zurückgibt.
    • DOMException-Erweiterungen zum Abfangen verschiedener Ausnahmetypen, wie EnumeratedValueException, HierarchyRequestError, IndexSizeException usw.
    • Clientseitige Funktionalität als Stubs enthalten, einschließlich Klassen für FileList, StyleSheet, VideoTrackList, WindowProxy usw.
  • DOM-Level-4+-Funktionalität:
    • Referenzierung von Elementen über CSS-Selektoren mittels Element::querySelector() und (Element::querySelectorAll())
    • Hinzufügen/Entfernen/Umschalten von Klassen der Elemente über ClassList
    • Durchlaufen von Nur-Element-Knoten mit Element::previousElementSibling, Element::nextElementSibling, Element::children sowie Element::lastElementChild und firstElementChild usw.
    • Einfügen und Entfernen von Kindknoten mit , , ,
  • Standardeigenschaften des HTMLDocument:
    • anchors
    • forms
    • image
    • links
    • scripts
    • title

Bekannte Einschränkungen / W3C-Spezifikationskonformität

Dieses Repository strebt eine möglichst genaue Übereinstimmung mit der DOM-Spezifikation unter https://dom.spec.whatwg.org/ an – ab Version 4.0.0 ist die gesamte Funktionalität mit den folgenden geringfügigen, aber unvermeidbaren Abweichungen vom Standard implementiert:

  • Die tagName-Eigenschaft von Elementen ist in Großbuchstaben.
  • Um den HTMLElement-Typ zu prüfen, muss Element::getElementType() aufgerufen werden – es sind keine Unterklassen von Element für die Verwendung mit instanceof verfügbar.
  • Die DOM-Spezifikation definiert Funktionalität, die nur clientseitig implementiert werden kann. Beispielsweise gibt HTMLInputElement::files eine FileList zurück, die alle Dateien auflistet, die der Benutzer über die Browseroberfläche ausgewählt hat. Diese Art von Funktionalität ist serverseitig nicht implementierbar, wurde aber aus Konsistenzgründen mit der Spezifikation als Stub bereitgestellt. Der Versuch, clientseitige Funktionalität innerhalb dieser Bibliothek zu verwenden, löst eine ClientSideOnlyFunctionalityException aus.

Datenbindung und Seitenvorlagenfunktionen

Dieses Repository soll der DOM-Spezifikation so genau wie möglich entsprechen. Eine Erweiterung des Repositories ist unter https://php.gt/domtemplate verfügbar, die Seitenvorlagen und Datenbindung über benutzerdefinierte Elemente und Vorlagenattribute hinzufügt und serverseitige Funktionalität ähnlich der von WebComponents einführt.

Natives HTMLDocument in PHP 8.4

Seit der Veröffentlichung von PHP 8.4 gibt es eine neue native HTMLDocument-Klasse, die direkt in PHP enthalten ist. Da diese native Bindungen besitzt, sind alle Operationen deutlich schneller. Es wurde mit der Arbeit begonnen, die DOM-Implementierung von PHPGT so anzupassen, dass sie den neuen nativen Code nutzt. Glücklicherweise ist das DOM ein sehr klar definierter Standard, sodass unabhängig davon, was passiert, nur minimale oder gar keine Änderungen an deinem Code erforderlich sein werden.

Wirf selbst einen Blick auf die Benchmarks im Branch php84-benchmark: Die meisten Operationen verzeichnen eine Geschwindigkeitssteigerung von 90 % oder mehr durch die Umstellung auf die native Implementierung!

Weitere Informationen werden in der Readme bereitgestellt, sobald mehr Arbeit in Richtung einer Implementierung der nativen Klassen geleistet wurde.

Tool herunterladen
ChildNode::remove()
ChildNode::before
ChildNode::after
ChildNode::replaceWith()