Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
gha-lab-f1c8785cc8 — Workflow de GitHub Actions en sandbox para la reproducción de CVE-2025-46820 | Kitploit
Herramientas/GitHubGitHub/pvharmo2/gha-lab-f1c8785cc8
Análisis de VulnerabilidadesExplotaciónAprendizaje y EducaciónRecursos CuradosLabs y Práctica
GitHubpvharmo2/gha-lab-f1c8785cc8

gha-lab-f1c8785cc8

Workflow de GitHub Actions en sandbox para la reproducción de CVE-2025-46820

Ver Repositorio
1hace 3 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
La API DOM moderna para proyectos PHP 7

API DOM moderna

Construido sobre el DOMDocument nativo de PHP, este proyecto proporciona acceso a APIs DOM modernas, tal y como esperarías al trabajar con código del lado del cliente en el navegador.

Realizar manipulación del DOM en tu código del lado del servidor mejora la forma en que se pueden construir páginas dinámicas. Utilizar una interfaz orientada a objetos estandarizada significa que la página puede procesarse previamente, beneficiando a navegadores, servidores web y redes de distribución de contenido.


Estado de compilación Calidad del código Cobertura del código Versión actual Documentación de PHP.Gt/Dom

Ejemplo de uso: ¡Hola, tú!

Nota importante: el ejemplo que se muestra aquí tiene fines ilustrativos, pero usar el DOM para asignar datos directamente a los valores de los elementos acopla estrechamente la lógica a la vista, lo que se considera una mala práctica. Consulta la biblioteca DomTemplate para una solución más robusta para vincular datos al DOM.

Considera una página con un formulario, con un elemento de entrada para introducir tu nombre. Cuando se envía el formulario, la página debería saludarte por tu nombre.

Este es un ejemplo sencillo de cómo los archivos HTML de origen pueden tratarse como plantillas. Esto puede aplicarse fácilmente a páginas de plantilla más avanzadas para proporcionar contenido dinámico, sin requerir técnicas no estándar como {{llaves curvas}} para marcadores de posición, o la construcción de HTML propensa a errores echo '<div class='easy-mistake'>' . $content['opa'] . '</div>' desde PHP.

HTML de origen (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 utilizado para inyectar tu nombre (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;

Características de un vistazo

  • Compatible con el DOM Living Standard del W3C:
    • El tipo Element representa todas las especificaciones de HTMLElement, como HTMLAnchorElement (<a>), HTMLButtonElement (<button>), HTMLInputElement (<input>), HTMLTableSectionElement (<thead>, <tbody>, <tfoot>), etc. El tipo particular puede detectarse con Element::getElementType(), que devuelve uno de los valores del enum ElementType.
    • Extensiones de DOMException para capturar diferentes tipos de excepciones, como EnumeratedValueException, HierarchyRequestError, IndexSizeException, etc.
    • Funcionalidad del lado del cliente simulada, incluyendo clases para FileList, StyleSheet, VideoTrackList, WindowProxy, etc.
  • Funcionalidad de nivel DOM 4+:
    • Referencia elementos usando selectores CSS mediante Element::querySelector() y (Element::querySelectorAll())
    • Añade/elimina/alterna las clases de los elementos usando ClassList
    • Recorre Nodes solo de Element con Element::previousElementSibling, Element::nextElementSibling, Element::children y Element::lastElementChild y firstElementChild, etc.
    • Inserta y elimina Nodes hijos con , , ,
  • Propiedades estándar en HTMLDocument:
    • anchors
    • forms
    • image
    • links
    • scripts
    • title

Limitaciones conocidas / cumplimiento de la especificación W3C

Este repositorio tiene como objetivo ser lo más preciso posible con la especificación DOM en https://dom.spec.whatwg.org/ - a partir de la v4.0.0 toda la funcionalidad está implementada con las siguientes desviaciones menores pero inevitables del estándar:

  • La propiedad tagName de los elementos está en mayúsculas.
  • Para comprobar el tipo HTMLElement, debe llamarse a Element::getElementType() - no hay subclases de Element disponibles para usar con instanceof, por ejemplo.
  • La especificación DOM define funcionalidad que solo es posible implementar en el lado del cliente. Por ejemplo, HTMLInputElement::files devuelve un FileList que enumera todos los archivos seleccionados por el usuario a través de la interfaz del navegador. Este tipo de funcionalidad es imposible de implementar en el lado del servidor, pero se ha simulado para mantener la coherencia con la especificación. Intentar usar funcionalidad del lado del cliente dentro de esta biblioteca lanza una ClientSideOnlyFunctionalityException.

Funciones de plantilla de página y vinculación de datos

Este repositorio tiene como objetivo ser lo más preciso posible con la especificación DOM. Una extensión del repositorio está disponible en https://php.gt/domtemplate que añade plantillas de página y vinculación de datos mediante elementos personalizados y atributos de plantilla, introduciendo funcionalidad del lado del servidor similar a la de WebComponents.

HTMLDocument nativo de PHP 8.4

Desde el lanzamiento de PHP 8.4, hay una nueva clase nativa HTMLDocument incluida en PHP de forma nativa. Al tener enlaces nativos, todas las operaciones son mucho más rápidas. Se ha comenzado el trabajo para que la implementación de Dom de PHPGT utilice el nuevo código nativo. Afortunadamente, el DOM es un estándar muy bien definido, así que pase lo que pase, se requerirán cambios mínimos o nulos en tu código.

Echa un vistazo a los benchmarks en la rama php84-benchmark por ti mismo: la mayoría de las operaciones registran un aumento de velocidad del 90% o más al cambiar a la implementación nativa.

Se proporcionará más información en el readme cuando se haya avanzado más hacia una implementación de las clases nativas.

Descargar herramienta
ChildNode::remove()
ChildNode::before
ChildNode::after
ChildNode::replaceWith()