Come funziona il rilevatore di RevealTheme
Quando inserisce un URL in uno dei nostri rilevatori, accadono molte cose nei due secondi prima che veda i risultati. Ecco il percorso tecnico per i più curiosi, comprese le limitazioni che non possiamo risolvere con l'ingegneria.
Passo 1: Ottenere l'HTML pubblico
Quando invia un URL, il nostro server recupera la pagina web pubblica di quell'URL usando uno User-Agent di browser standard. È lo stesso HTML che riceverebbe il suo browser se visitasse il sito direttamente. Non aggiriamo muri di pagamento, non estraiamo contenuti protetti da login né usiamo alcuna autenticazione.
Il recupero usa un timeout di 20 secondi. Seguiamo fino a 10 reindirizzamenti (il che copre i reindirizzamenti HTTP → HTTPS, www → senza-www e i reindirizzamenti per paese). Se il sito restituisce una risposta 4xx o 5xx, oppure non risponde entro la finestra di timeout, restituiamo un chiaro errore «impossibile accedere» invece di tirare a indovinare.
Passo 2: Rilevare la piattaforma
Prima di tentare di identificare un tema specifico, verifichiamo quale CMS esegue il sito. Cerchiamo le impronte delle 7 piattaforme supportate —WordPress, Shopify, Magento, Joomla, Drupal, Moodle e PrestaShop— e scegliamo la corrispondenza più forte.
Se invia un URL di Shopify al nostro rilevatore di WordPress (o viceversa), glielo segnaliamo e la rimandiamo al rilevatore corretto. Nessuna supposizione, nessun falso positivo.
Passo 3: Rilevamento del tema
Per WordPress in particolare, i riferimenti al tema compaiono di solito nell'HTML della pagina in percorsi come wp-content/themes/NOME_DEL_TEMA/style.css. Estraiamo ciascuno di questi riferimenti da qualsiasi punto del documento: tag link, tag script, JavaScript inline, blocchi JSON-LD e persino il contenuto testuale. Questo rileva temi che i siti molto ottimizzati hanno nascosto agli strumenti di rilevamento standard.
Per ogni tema rilevato, tentiamo di ottenere il file style.css del tema. L'intestazione di quel file contiene il nome ufficiale del tema, l'autore, la versione, l'URI e la descrizione, direttamente dallo sviluppatore del tema. È questa la fonte delle ricche informazioni sul tema che mostriamo accanto al risultato del rilevamento.
Passo 4: Rilevamento dei plugin
Il rilevamento dei plugin usa due approcci paralleli. Per prima cosa, estraiamo qualsiasi percorso di file che corrisponda a wp-content/plugins/NOME_DEL_PLUGIN/. In secondo luogo, eseguiamo decine di controlli basati su firme: cerchiamo strutture HTML specifiche, nomi di classi CSS, variabili JavaScript inline e intestazioni di risposta HTTP che identificano in modo univoco plugin popolari come Elementor, Yoast SEO, WPForms, WooCommerce, Wordfence e altri.
Il design a doppio approccio rileva i plugin che nascondono i propri percorsi di file (tramite cache o aggregazione delle risorse) ma che lasciano comunque firme distintive. Per ogni plugin rilevato, lo cerchiamo nel Directory dei Plugin di WordPress.org per arricchire il risultato con il nome ufficiale del plugin, la descrizione, l'autore e gli screenshot.
Passo 5: Ricerche di hosting + DNS
Per identificare il provider di hosting, effettuiamo una ricerca DNS sul dominio e ispezioniamo l'indirizzo IP, l'ASN e il DNS inverso. Lo incrociamo con un database di intervalli IP noti dei provider di hosting per identificare il provider. La precisione è alta per i principali host (AWS, Cloudflare, Hostinger, SiteGround, ecc.) e minore per i provider di nicchia.
Ciò che non possiamo fare
Alcuni casi in cui il rilevamento non funzionerà, per quanto buono sia il nostro codice:
- Sfida anti-bot di Cloudflare. I siti con protezione anti-bot rigorosa di Cloudflare (la schermata «Verifica della sicurezza in corso...») bloccano il nostro recuperatore proprio come bloccherebbero qualsiasi richiesta automatizzata. Non esiste un modo pulito per aggirarla.
- Temi personalizzati in modo intensivo. Se un tema è stato modificato a tal punto da rimuovere dall'HTML ogni riferimento al nome originale del tema, non abbiamo nulla da rilevare.
- Cache aggressiva con percorsi delle risorse riscritti. Plugin come LiteSpeed Cache, WP Rocket e il Rocket Loader di Cloudflare a volte riscrivono gli URL delle risorse per nascondere la fonte. Il nostro rilevamento basato su firme ne intercetta la maggior parte, ma non tutti.
- Siti di esportazione statica. Un sito WordPress esportato in HTML statico perde la maggior parte delle firme di runtime che rendono possibile il rilevamento.
Ciò che non facciamo
Ce lo hanno chiesto. Le risposte sono no:
- Non memorizziamo gli URL che invia
- Non registriamo indirizzi IP a fini di marketing
- Non condividiamo i dati di rilevamento con i provider
- Non aggiriamo l'autenticazione, il robots.txt né altri controlli di accesso
- Non eseguiamo il rilevatore su IP interni/privati (127.0.0.1, 10.x.x.x, ecc.) per motivi di sicurezza
I dettagli completi sulla privacy sono nella nostra Informativa sulla privacy.
Accesso all'API
Al momento non offriamo un'API pubblica, ma è disponibile su richiesta un accesso programmatico limitato per agenzie e ricercatori. Scriva a hello@revealtheme.com indicando il suo caso d'uso e il volume di richieste previsto.
Perché non è open source?
Le regole di rilevamento sono il cuore del prodotto e le aggiorniamo di frequente man mano che i temi e i plugin evolvono. Renderne pubblico il codice rallenterebbe la nostra cadenza di aggiornamento. Detto questo, pubblichiamo articoli dettagliati sulle tecniche di rilevamento sul nostro blog: cerchi «rilevamento» per trovarli.
Pronto a provarlo?
Usi il rilevatore corrispondente al sito che vuole ispezionare: