Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Ferramentas/GitHubGitHub/pvharmo2/gha-lab-f1c8785cc8
Análise de VulnerabilidadesExploraçãoAprendizado e EducaçãoRecursos CuradosLabs e Prática
GitHubpvharmo2/gha-lab-f1c8785cc8

gha-lab-f1c8785cc8

Workflow sandbox do GitHub Actions para reprodução do CVE-2025-46820

Ver Repositório
1há 3 diasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
A API DOM moderna para projetos PHP 7

API DOM Moderna

Construído sobre o DOMDocument nativo do PHP, este projeto fornece acesso a APIs DOM modernas, como você esperaria ao trabalhar com código client-side no navegador.

Realizar manipulação de DOM no seu código server-side melhora a forma como páginas dinâmicas podem ser construídas. Utilizar uma interface padronizada e orientada a objetos significa que a página pode ser pré-processada, beneficiando navegadores, servidores web e redes de distribuição de conteúdo.


Status de build Qualidade de código Cobertura de código Versão atual Documentação do PHP.Gt/Dom

Exemplo de uso: Olá, você!

Nota importante: o exemplo mostrado aqui é apenas ilustrativo, mas usar o DOM para definir dados diretamente nos valores dos elementos acopla fortemente a lógica à view, o que é considerado má prática. Consulte a biblioteca DomTemplate para uma solução mais robusta de vinculação de dados ao DOM.

Considere uma página com um formulário, contendo um elemento de entrada para digitar o seu nome. Quando o formulário é enviado, a página deve cumprimentá-lo pelo seu nome.

Este é um exemplo simples de como arquivos HTML de origem podem ser tratados como templates. Isso pode ser facilmente aplicado a páginas de template mais avançadas para fornecer conteúdo dinâmico, sem exigir técnicas não padronizadas como {{chaves curvas}} para placeholders, ou a construção de HTML propensa a erros como echo '<div class='easy-mistake'>' . $content['opa'] . '</div>' a partir do PHP.

HTML de origem (name.html)

root@kitploit:~
<!doctype html>
<h1>
	Olá, <span class="name-output">você</span> !
</h1>

<form>
	<input name="name" placeholder="Seu nome, por favor" required />
	<button>Enviar</button>
</form>

PHP usado para injetar o seu nome (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;

Funcionalidades em resumo

  • Compatível com o DOM Living Standard do W3C:
    • O tipo Element representa todas as especificações de HTMLElement, como HTMLAnchorElement (<a>), HTMLButtonElement (<button>), HTMLInputElement (<input>), HTMLTableSectionElement (<thead>, <tbody>, <tfoot>), etc. O tipo específico pode ser detectado com Element::getElementType(), que retorna um dos valores do enum ElementType.
    • Extensões de DOMException para capturar diferentes tipos de exceção, como EnumeratedValueException, HierarchyRequestError, IndexSizeException, etc.
    • Funcionalidades client-side simuladas (stubs), incluindo classes para FileList, StyleSheet, VideoTrackList, WindowProxy, etc.
  • Funcionalidades do DOM nível 4+:
    • Referencie elementos usando seletores CSS via Element::querySelector() e (Element::querySelectorAll())
    • Adicione/remova/alterne classes de elementos usando ClassList
    • Percorra Nodes somente de Elemento com Element::previousElementSibling, Element::nextElementSibling, Element::children e Element::lastElementChild e firstElementChild, etc.
    • Insira e remova Nodes filhos com , , ,
  • Propriedades padrão no HTMLDocument:
    • anchors
    • forms
    • image
    • links
    • scripts
    • title

Limitações conhecidas / conformidade com a especificação do W3C

Este repositório visa ser o mais preciso possível em relação à especificação DOM em https://dom.spec.whatwg.org/ - a partir da v4.0.0, toda a funcionalidade é implementada com os seguintes desvios menores, porém inevitáveis, do padrão:

  • A propriedade tagName dos elementos está em maiúsculas.
  • Para verificar o tipo de HTMLElement, Element::getElementType() deve ser chamado - não há subclasses de Element disponíveis para uso com instanceof, por exemplo.
  • A especificação DOM define funcionalidades que só podem ser implementadas no lado do cliente. Por exemplo, HTMLInputElement::files retorna um FileList que enumera todos os arquivos selecionados pelo usuário através da interface do navegador. Esse tipo de funcionalidade é impossível de implementar no lado do servidor, mas foi simulado (stubbed) para consistência com a especificação. Tentar usar funcionalidades client-side dentro desta biblioteca lança uma ClientSideOnlyFunctionalityException.

Vinculação de dados e funcionalidades de template de página

Este repositório pretende ser o mais preciso possível em relação à especificação DOM. Uma extensão do repositório está disponível em https://php.gt/domtemplate, que adiciona templates de página e vinculação de dados através de elementos personalizados e atributos de template, introduzindo funcionalidades server-side semelhantes às dos WebComponents.

HTMLDocument nativo do PHP 8.4

Desde o lançamento do PHP 8.4, uma nova classe nativa HTMLDocument foi incluída no PHP. Com essas ligações nativas, todas as operações são muito mais rápidas. O trabalho foi iniciado para fazer a implementação do Dom do PHPGT utilizar o novo código nativo. Felizmente, o DOM é um padrão muito bem definido, então, independentemente do que acontecer, mudanças mínimas ou nenhuma serão necessárias no seu código.

Dê uma olhada nos benchmarks no branch php84-benchmark por conta própria: a maioria das operações registrou um aumento de velocidade de 90% ou mais ao mudar para a implementação nativa!

Mais informações serão apresentadas no readme quando mais trabalho for feito em direção a uma implementação das classes nativas.

Baixar ferramenta
ChildNode::remove()
ChildNode::before
ChildNode::after
ChildNode::replaceWith()