GitHub

Verificator de legături · Rust · clean-room

VERIGA

Un site este un lanț. Când o legătură cedează, cititorii ajung în gol. VERIGA găsește fiecare verigă ruptă, propune reparația, o verifică live și o aplică numai cu copie de siguranță și cale de întoarcere.

3interfețe: CLI, GUI nativ, HTML single-file
8ținte în CI: Linux, Windows, macOS, x86-64 și ARM64
0conturi, cookie-uri de urmărire sau servicii externe
48teste Rust automate, plus audit de accesibilitate și de securitate

01 · Demonstrație

Repară un site, veriga cu veriga

Rezultatul unei verificări pe un site de exemplu. Alege un rând, citește propunerea și aplic-o. Fișierul sursă din dreapta se schimbă, iar orice modificare poate fi anulată.

exemplu.ro · 10 legături

    Propunere

    pagina-principala.html

    
            

    Date de exemplu, simulate în pagină. Aplicația reală verifică adresele pe rețea, respectă robots.txt și scrie în fișierele tale.

    02 · Funcții

    Tot ce face un verificator serios, și încă ceva

    Replică clean-room a funcțiilor Xenu Link Sleuth, extinsă cu funcțiile pluginului Trade-Free Link Guardian: reparare, jurnal, anulare și rulări programate.

    PARCURGE

    • Pagini, imagini, CSS, scripturi, cadre, media, e-mail, FTP și ancore
    • Site online sau director local, cu fișiere orfane și diferențe de majuscule
    • HTTP/2, reîncercări cu Retry-After, lanțuri de redirecționări
    • robots.txt conform RFC 9309 și pornire din sitemap
    • 403 nu înseamnă rupt: se marchează pentru revizuire

    REPARĂ

    • Reguli locale: schemă greșită, URL lipit, parametri de urmărire, http spre https
    • Redirecționări permanente verificate pe aceeași resursă, cu respingerea soft-404
    • Surse HTML, Markdown, export WordPress (WXR) și sitemap
    • Copie de siguranță, scriere atomică, jurnal și anulare pe poziție, context sau text unic
    • Dezleagă linkul sau caută arhiva în Wayback Machine, la cerere

    PRIVEȘTE

    • Rapoarte HTML, CSV, TSV, JSON, text și sitemap
    • Domenii, hartă de sănătate, arbore, tendințe și conformitate
    • Jurnal 404 cu sugestii și reguli .htaccess
    • Deriva între verificări: legături noi, rezolvate și titluri H1 schimbate
    • Rulări programate cu notificare prin webhook sau e-mail
    Linux x86-64Linux ARM64Linux musl (static)Windows x86-64Windows ARM64macOS IntelmacOS Apple SiliconDocker scratchHTML single-file

    03 · Securitate

    Un instrument care citește internetul nu are voie să-l creadă

    Codul a trecut printr-un audit adversarial: am atacat propriul program, am scris testele care pică, apoi le-am reparat. Iată ce nu mai merge împotriva lui.

    RFC 9309robots.txt, cu 5xx tratat ca interdicție
    WCAG 2.2 AAaxe-core: 0 încălcări, temă clară și întunecată
    RUST 2024clippy strict, 48 de teste, cargo-audit curat
    CSPcu hash în pagină și în rapoartele exportate

    Limite cunoscute, scrise în README: rebinding DNS nu este închis complet, HTML escapat în exporturile WordPress nu este scanat, iar varianta web este limitată de CORS.

    Un site public te trimite spre rețeaua ta internă
    Apărare: adresele private și locale sunt blocate implicit, inclusiv după redirecționare (anti-SSRF). Se permit explicit cu --allow-private.
    Parola ta ajunge la alt server printr-un redirect
    Apărare: Authorization, Cookie și cheile API se trimit doar către originea internă, niciodată către alte gazde.
    Un server ostil îți strecoară cod în fișiere
    Apărare: un URL nou cu ghilimele, paranteze unghiulare, spații, backtick sau backslash este refuzat înainte de scriere, în Rust și în varianta web.
    Fișierul se schimbă în timp ce îl repari
    Apărare: conținutul se recitește chiar înainte de scriere; o propunere depășită este abandonată, nu aplicată pe o poziție greșită. Scrierea este atomică, păstrează permisiunile și symlink-urile.
    Un titlu de pagină devine formulă în Excel
    Apărare: exporturile CSV neutralizează celulele care încep cu =, +, - sau @.
    O sesiune importată conține HTML ostil
    Apărare: tot ce vine dintr-o sesiune sau dintr-un jurnal importat este escapat, iar CSP-ul cu hash blochează orice script neprevăzut.

    04 · Instalare

    Pornește în două minute

    Pe moment se compilează din sursă. Varianta HTML nu are nevoie de nimic: deschizi fișierul în browser.

    shell