Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
gha-lab-f1c8785cc8 — Workflow sandbox GitHub Actions pour la reproduction de CVE-2025-46820 | Kitploit
Outils/GitHubGitHub/pvharmo2/gha-lab-f1c8785cc8
Analyse des VulnérabilitésExploitationApprentissage et ÉducationRessources OrganiséesLabs et Pratique
GitHubpvharmo2/gha-lab-f1c8785cc8

gha-lab-f1c8785cc8

Workflow sandbox GitHub Actions pour la reproduction de CVE-2025-46820

Voir le dépôt
1il y a 3 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
L'API DOM moderne pour les projets PHP 7

API DOM moderne

Construit sur la base du DOMDocument natif de PHP, ce projet donne accès aux API DOM modernes, comme vous vous y attendriez en travaillant avec du code côté client dans le navigateur.

Effectuer des manipulations DOM dans votre code côté serveur améliore la façon dont les pages dynamiques peuvent être construites. L'utilisation d'une interface orientée objet standardisée signifie que la page peut être pré-traitée, au bénéfice des navigateurs, des serveurs web et des réseaux de diffusion de contenu.


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

Exemple d'utilisation : Bonjour, vous !

Remarque importante : l'exemple présenté ici est à titre d'illustration, mais utiliser le DOM pour définir directement des données dans les valeurs des éléments couple étroitement la logique à la vue, ce qui est considéré comme une mauvaise pratique. Veuillez consulter la bibliothèque DomTemplate pour une solution plus robuste de liaison de données au DOM.

Considérez une page avec un formulaire, comportant un élément de saisie pour entrer votre nom. Lorsque le formulaire est soumis, la page doit vous saluer par votre nom.

Voici un exemple simple de la façon dont les fichiers HTML sources peuvent être traités comme des modèles. Cela peut facilement être appliqué à des pages modèles plus avancées pour fournir un contenu dynamique, sans nécessiter de techniques non standard telles que {{accolades}} pour les espaces réservés, ou la construction HTML sujette aux erreurs echo '<div class='easy-mistake'>' . $content['opa'] . '</div>' depuis PHP.

HTML source (name.html)

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

<form>
	<input name="name" placeholder="Votre nom, s'il vous plaît" required />
	<button>Envoyer</button>
</form>

PHP utilisé pour injecter votre nom (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;

Fonctionnalités en un coup d'œil

  • Compatible avec le DOM Living Standard du W3C :
    • Le type Element représente toutes les spécifications HTMLElement, telles que HTMLAnchorElement (<a>), HTMLButtonElement (<button>), HTMLInputElement (<input>), HTMLTableSectionElement (<thead>, <tbody>, <tfoot>), etc. Le type particulier peut être détecté avec Element::getElementType(), qui renvoie l'une des valeurs de l'énumération ElementType.
    • Extensions DOMException pour capturer différents types d'exceptions, telles que EnumeratedValueException, HierarchyRequestError, IndexSizeException, etc.
    • Fonctionnalités côté client simulées, y compris des classes pour FileList, StyleSheet, VideoTrackList, WindowProxy, etc.
  • Fonctionnalités DOM niveau 4+ :
    • Référencer des éléments à l'aide de sélecteurs CSS via Element::querySelector() et (Element::querySelectorAll())
    • Ajouter/supprimer/alterner les classes des éléments à l'aide de ClassList
    • Parcourir les nœuds de type Element uniquement avec Element::previousElementSibling, Element::nextElementSibling, Element::children et Element::lastElementChild et firstElementChild, etc.
    • Insérer et supprimer des nœuds enfants avec , , ,
  • Propriétés standard sur HTMLDocument :
    • anchors
    • forms
    • image
    • links
    • scripts
    • title

Limitations connues / conformité à la spécification W3C

Ce dépôt vise à être aussi précis que possible par rapport à la spécification DOM disponible sur https://dom.spec.whatwg.org/ - à partir de la v4.0.0, toutes les fonctionnalités sont implémentées avec les écarts mineurs mais inévitables suivants par rapport à la norme :

  • La propriété tagName des éléments est en majuscules.
  • Pour vérifier le type HTMLElement, Element::getElementType() doit être appelé - aucune sous-classe de Element n'est disponible pour une utilisation avec instanceof, par exemple.
  • La spécification DOM définit des fonctionnalités qui ne peuvent être implémentées que côté client. Par exemple, HTMLInputElement::files renvoie un FileList qui énumère tous les fichiers sélectionnés par l'utilisateur via l'interface du navigateur. Ce type de fonctionnalité est impossible à implémenter côté serveur, mais a été simulé pour rester cohérent avec la spécification. Toute tentative d'utilisation de fonctionnalités côté client dans cette bibliothèque lève une ClientSideOnlyFunctionalityException.

Liaison de données et fonctionnalités de modèles de pages

Ce dépôt vise à être aussi précis que possible par rapport à la spécification DOM. Une extension du dépôt est disponible sur https://php.gt/domtemplate qui ajoute la création de modèles de pages et la liaison de données via des éléments personnalisés et des attributs de modèles, introduisant des fonctionnalités côté serveur similaires à celles des WebComponents.

HTMLDocument natif PHP 8.4

Depuis la sortie de PHP 8.4, une nouvelle classe native HTMLDocument est fournie nativement dans PHP. Grâce à ses liaisons natives, toutes les opérations sont beaucoup plus rapides. Des travaux ont été entrepris pour que l'implémentation Dom de PHPGT utilise le nouveau code natif. Heureusement, le DOM est une norme très bien définie, donc quoi qu'il arrive, des modifications minimes ou nulles seront nécessaires à votre code.

Jetez un œil aux benchmarks sur la branche php84-benchmark : la plupart des opérations enregistrent une augmentation de vitesse de 90 % ou plus en passant à l'implémentation native !

Plus d'informations seront détaillées dans le readme lorsque davantage de travaux auront été réalisés vers une implémentation des classes natives.

Télécharger l’outil
ChildNode::remove()
ChildNode::before
ChildNode::after
ChildNode::replaceWith()