Vai al contenuto
Root scanner
ENIT
Scrivici
Come funziona il checkChe cos’è lo scannerInformativa privacyCondizioni d’uso

Come funziona il check di superficie

Cosa legge il check di superficie di Root92, cosa non tocca mai, come si calcolano i tuoi quattro punteggi e cosa aggiunge l’audit completo.

In questa pagina
  1. 01Cosa fa il check
  2. 02Chi può richiedere un check
  3. 03Cosa succede durante un check
  4. 04Cosa non facciamo mai
  5. 05I tuoi punteggi, spiegati
  6. 06Cosa controlliamo
  7. 07Cosa un check automatico non può vedere
  8. 08Domande frequenti
  1. 01Cosa fa il check
  2. 02Chi può richiedere un check
  3. 03Cosa succede durante un check
  4. 04Cosa non facciamo mai
  5. 05I tuoi punteggi, spiegati
  6. 06Cosa controlliamo
  7. 07Cosa un check automatico non può vedere
  8. 08Domande frequenti

Il check di superficie guarda la tua app come la vede il browser di qualunque visitatore — da fuori, senza accedere — e trasforma ciò che vede in quattro punteggi e un breve elenco di problemi. Dura pochi secondi e non tocca mai i tuoi dati.

01Cosa fa il check#

  • Un indirizzo alla volta, e solo quando lo chiede il proprietario (o chi ha la sua autorizzazione).
  • Solo ciò che è già pubblico: la home page, i file JavaScript che carica, le intestazioni della risposta, i record DNS pubblici e il certificato TLS.
  • Niente viene modificato e niente di ciò che troviamo viene usato: nessun accesso con credenziali, nessuna chiave provata, nessun dato letto dal tuo database.
  • Quattro punteggi separati: Sicurezza, Performance, Accessibilità e SEO. Non li mescoliamo in un numero unico, così vedi dove sta il problema.

02Chi può richiedere un check#

Chiunque può avviare il check di superficie, ma solo su un’app di cui è proprietario o che è autorizzato a far analizzare. Prima che il check parta spunti una casella che conferma proprio questo; senza la spunta non parte nulla. Registriamo la conferma, la versione del testo che hai accettato e l’orario.

Teniamo il check di superficie volutamente leggero, perché una dichiarazione falsa non possa fare danni: legge solo ciò che qualunque browser riceve già, accetta al massimo 3 check all’ora sullo stesso sito, chiunque li chieda (tranne il proprietario, una volta provata la proprietà), rispetta il robots.txt del sito e si presenta con il proprio nome. Tutto ciò che va oltre la superficie pubblica richiede più di una spunta: il check approfondito parte solo dopo che il proprietario ha dimostrato di controllare il sito, e l’audit completo solo con la sua autorizzazione esplicita.

03Cosa succede durante un check#

  1. Validiamo la richiesta. L’indirizzo deve essere un sito pubblico sulle porte web standard; reti private e indirizzi interni vengono rifiutati.
  2. Leggiamo prima il robots.txt del sito. Se chiede agli strumenti automatici di non leggere la home page, ci fermiamo e te lo diciamo.
  3. Carichiamo la home page e i file JavaScript del sito dichiarati dalla pagina — fino a 40 file, entro un totale di 20 secondi e 20 MB per l’intero check. Gli script di altre aziende non vengono scaricati.
  4. Sul tuo dominio consultiamo i record pubblici: il certificato TLS e i record DNS che proteggono la tua email (SPF, DMARC, MTA-STS, TLS-RPT) e i tuoi certificati (CAA). Sul sottodominio di un builder sono della piattaforma, quindi li saltiamo.
  5. Calcoliamo i punteggi e ti mostriamo il referto. Il check conserva solo i risultati, mai il contenuto delle tue pagine.

Il check di superficie chiede solo ciò che un browser carica quando apre la tua home page per la prima volta. Non chiede mai se esistono file come /.env, /.git/config, le tue source map, /sitemap.xml, /.DS_Store, /.htpasswd o la documentazione della tua API, e non chiede mai al tuo server come risponde agli altri siti (CORS): nessun browser li chiede, e spuntare la casella non prova che il sito sia tuo. Quelle domande appartengono al check approfondito, dopo che il proprietario ha dimostrato di controllare il sito. Lì leggiamo solo il codice di risposta e gli header, mai il file, e se uno di quei file sembra esserci chiediamo anche un indirizzo che non può esistere, così un sito che risponde allo stesso modo a qualunque indirizzo non viene segnalato per errore.

04Cosa non facciamo mai#

  • Leggere, copiare o conservare dati del tuo database.
  • Usare una chiave, una password o un token che troviamo. Segnaliamo che è visibile; non lo proviamo mai.
  • Scaricare file di configurazione, codice sorgente o source map. L’unica eccezione è il check approfondito su un sito il cui proprietario ha dimostrato di controllarlo e ha spuntato una casella apposta: lì leggiamo le source map in memoria, solo per indicare il file e la riga di una chiave esposta. Conserviamo il tipo di chiave, il file, la riga e un frammento accorciato della chiave, mai il codice e mai la chiave intera. Se il proprietario spunta un’altra casella apposta, usiamo lo stesso codice in memoria per misurare il codice non usato e le librerie incluse più volte. Lì conserviamo i percorsi dei file (senza nomi utente), i nomi e le versioni delle librerie e le dimensioni in byte, mai il codice.
  • Indovinare nomi di file o di tabelle, o esplorare altre pagine. L’unica eccezione è il controllo di accessibilità sulle pagine rese, parte del check approfondito su un sito il cui proprietario ha dimostrato di controllarlo e ha spuntato una casella apposta: lì un browser isolato apre al massimo 10 pagine di quell’hostname esatto — la home page e le pagine a cui porta, fino a 2 link di distanza, ognuna permessa da robots.txt — e ne esegue il JavaScript per vedere ciò che vede un visitatore. Non raggiunge nessun altro sito, invia solo letture di pagina (niente moduli, caricamenti di file o messaggi), e conserviamo solo i percorsi delle pagine e le misure, mai il contenuto.
  • Registrare le richieste di rete delle tue pagine. L’unica eccezione è il controllo della rete, parte del check approfondito su un sito il cui proprietario ha dimostrato di controllarlo e ha spuntato una casella apposta: lì un browser isolato, con lo stesso nome, apre una volta la home page di quell’hostname esatto, se robots.txt lo permette, ne esegue il JavaScript e registra le richieste che fa nei primi secondi dopo il caricamento, senza cliccare niente. Non raggiunge nessun altro sito — le richieste verso altri servizi partono e lì si fermano, e gli script di altre aziende non si caricano — e invia solo letture di pagina (niente moduli, caricamenti di file o messaggi). Conserviamo metodi, indirizzi senza i loro valori, nomi dei parametri e delle intestazioni, host di terzi e se un valore sembrava un dato personale; mai i valori e mai il contenuto.
  • Accedere con credenziali, inviare moduli o modificare qualunque cosa.
  • Mandare dati del tuo sito ad altre aziende. L’unica eccezione è il check approfondito su un sito il cui proprietario ha dimostrato di controllarlo, e solo per le caselle che spunta, ognuna a parte: l’indirizzo del sito a un insieme pubblico di dati sulla velocità per i visitatori reali, il nome del dominio al registro della sua estensione (registrazione e scadenza), il nome host alla lista HTTPS pubblica dei browser, nome e versione esatta delle librerie che riconosciamo (oggi Next.js e Angular) a un database aperto di segnalazioni di sicurezza (vulnerabilità note), il nome del dominio a un database pubblico di violazioni di dati note, e il nome del dominio, o l’indirizzo completo su un sottodominio di un builder, a una piattaforma pubblica di codice (chiavi in codice pubblico). Ognuno riceve solo questo; l’informativa privacy dice cosa conserviamo di ogni risposta.
  • Nascondere chi siamo: ogni richiesta porta il nome Root92-MigrationScanner e un link alla nostra pagina «Che cos’è lo scanner».

05I tuoi punteggi, spiegati#

PunteggioCosa ti diceCome si calcola
Sicurezza (0–100)Quante debolezze potrebbe sfruttare un estraneo, e quanto l’app è legata alla sua piattaforma.Parte da 100. Ogni problema trovato toglie un numero fisso di punti (vedi l’elenco sotto). Non scende mai sotto 0.
Performance (0–100)Quanto è pesante e veloce la tua home page.Cinque misure, ognuna valutata da 0 a 100 e pesata: tempo di risposta del server 40%, peso del JavaScript 30%, numero di file JavaScript 10%, peso dell’HTML 10%, rendering lato server 10%.
Accessibilità (mostrata come problemi)Le barriere più comuni per chi usa screen reader o tastiera.Sei controlli sul codice HTML, pesati secondo la gravità della barriera. Il referto mostra quanti non sono superati.
SEO (mostrata come problemi)Se i motori di ricerca possono indicizzare la home page e presentarla bene.Tredici controlli; ogni problema toglie punti da 100. Il referto mostra quanti ne abbiamo trovati.
  • «Punteggio ≤ N» significa che non abbiamo finito di leggere la tua app entro il limite di tempo o di dimensione. Ciò che non abbiamo letto può nascondere altri problemi, quindi il punteggio reale può solo essere più basso.
  • «Non misurato» significa che il controllo non ha potuto girare — di solito perché la pagina è costruita interamente nel browser e il suo HTML è vuoto finché non gira il JavaScript.
  • I controlli SEO sono l’eccezione: leggono l’HTML esattamente come lo manda il tuo server. Su una pagina costruita interamente nel browser, quindi, un <h1> mancante può essere segnalato anche quando la pagina finita ne mostra uno.
  • App sul sottodominio di un builder: dominio, email e certificato sono della piattaforma, non tuoi, quindi non li contiamo a tuo sfavore.
  • Nessun punteggio viene mostrato se non siamo riusciti a raggiungere il sito, o se il suo robots.txt ci ha chiesto di non leggerlo. Il check di superficie non ti chiede i contatti, quindi non ti scriveremo noi: se vuoi che lo guardiamo, scrivici dal modulo «Scrivici» della home page.

06Cosa controlliamo#

Il referto di superficie mostra subito i problemi più importanti. Gli altri sono conteggiati nel punteggio ed elencati nell’audit completo.

Sicurezza — piattaforma e backend

ControlloCosa guardiamoPuntiDove
Costruita con un site builderSegni di Lovable, Bolt, v0, Replit, Base44, Framer, Webflow, Wix, Squarespace, Shopify, WordPress, Bubble, Softr, Glide, Retool o un altro builder AI12Referto di superficie
Ospitata sul sottodominio della piattaformaL’app risponde sull’indirizzo del builder (conta al posto della riga precedente, non in aggiunta)12Referto di superficie
Backend SupabaseUn indirizzo Supabase nella pagina o nei suoi script16Referto di superficie
Backend FirebaseUn indirizzo Firebase nella pagina o nei suoi script16Referto di superficie

Sicurezza — chiavi e file esposti

ControlloCosa guardiamoPuntiDove
Chiave di servizio del database nel browserUna chiave Supabase con pieni diritti di amministrazione nel tuo codice pubblico45Referto di superficie
Chiave del database nel browserLa tua chiave pubblica Supabase. È sicura solo se la row-level security protegge ogni tabella34Referto di superficie
Altre chiavi segrete nel codiceChiavi segrete di servizi come Stripe, AWS, OpenAI, Anthropic, GitHub, Slack, SendGrid, Twilio o Google, o certificati privati40Referto di superficie
Credenziali di un database o di un servizio in un URLUn indirizzo con utente e password (utente:password@host) di un server raggiungibile da internet40Referto di superficie
Chiave di un servizio email nel codiceUna chiave API di Resend, Mailchimp o Brevo40Referto di superficie
Token di un sistema di pagamento nel codiceUn token di accesso o un segreto OAuth di Square40Referto di superficie
Chiave di un servizio di AI nel codiceUna chiave API di Hugging Face, Replicate, Groq, OpenRouter, xAI o Perplexity40Referto di superficie
Token di un repository di codice nel codiceUn token di GitLab, npm o Bitbucket40Referto di superficie
Credenziale cloud nel codiceUn token DigitalOcean o la chiave di un account di archiviazione Azure40Referto di superficie
Segreto OAuth nel codiceIl segreto di un client OAuth di Google40Referto di superficie
Token di amministrazione del negozio nel codiceUn token di amministrazione o di app Shopify40Referto di superficie
Token di uno strumento di lavoro nel codiceUn token API di Airtable, Notion o Linear40Referto di superficie
Webhook di una chat nel codiceUn webhook Slack o Discord, o il token di un bot Telegram: chiunque potrebbe scrivere a nome tuo12Audit completo
Indirizzo interno nel codiceUn indirizzo completo verso un IP privato o un nome interno (localhost non conta: molte librerie lo portano di serie)1Audit completo
API o WebSocket senza cifraturaUn’API chiamata su http:// o un WebSocket aperto su ws://2Audit completo
File .env raggiungibileSe il tuo file di ambiente può essere scaricato da chiunque. Si controlla solo nel check approfondito, dopo che hai dimostrato che il sito è tuo40Audit completo
http:// in chiaro non rimandato a https://La tua home page risponde ancora su http:// senza cifratura invece di rimandare. Si controlla solo nel check approfondito, dopo che hai dimostrato che il sito è tuo3Audit completo
Cartella .git raggiungibileSe la cronologia del tuo codice può essere scaricata da chiunque. Si controlla solo nel check approfondito, dopo che hai dimostrato che il sito è tuo40Audit completo
Source map pubblicheSe il sorgente originale dei tuoi script può essere scaricato. Si controlla solo nel check approfondito, dopo che hai dimostrato che il sito è tuo8Audit completo
File delle password raggiungibile (.htpasswd)Se il file delle password del tuo server web può essere scaricato da chiunque. Si controlla solo nel check approfondito, dopo che hai dimostrato che il sito è tuo12Audit completo
File di metadati delle cartelle raggiungibile (.DS_Store)Se un file di macOS che elenca le tue cartelle può essere scaricato da chiunque. Si controlla solo nel check approfondito, dopo che hai dimostrato che il sito è tuo2Audit completo
Documentazione dell’API raggiungibile pubblicamenteSe un file OpenAPI o Swagger che descrive la tua API risponde al suo indirizzo predefinito. Si controlla solo nel check approfondito, dopo che hai dimostrato che il sito è tuo2Audit completo

Sicurezza — protezioni del browser

ControlloCosa guardiamoPuntiDove
Cookie non sicuriCookie impostati senza i flag Secure, HttpOnly o SameSite4Audit completo
Content-Security-Policy assenteL’intestazione che limita quali script possono girare2Audit completo
HSTS assenteL’intestazione che obbliga i browser a usare HTTPS2Audit completo
Protezione dal clickjacking assenteProtezione contro l’inserimento della tua pagina in un altro sito2Audit completo
CORS aperto a qualunque sitoRisposte leggibili dagli script di qualunque altro sito2Audit completo
CORS si fida di qualunque sito con le credenzialiSulla tua home page, il tuo server ricopia nella risposta CORS l’indirizzo di qualunque sito e permette i cookie del visitatore. Proviamo solo la home page, non le tue API. Si controlla solo nel check approfondito, dopo che hai dimostrato che il sito è tuo4Audit completo
Contenuto mistoUna pagina HTTPS che carica immagini o script in HTTP semplice2Audit completo
X-Content-Type-Options assenteL’intestazione che impedisce ai browser di indovinare il tipo di file2Audit completo
Referrer-Policy assenteIl controllo su quanta parte dei tuoi indirizzi viene condivisa con altri siti1Audit completo
Permissions-Policy assenteLimiti su fotocamera, microfono, posizione e funzioni simili1Audit completo
Script da un dominio compromessoUno script caricato da un dominio che ha servito codice malevolo, come polyfill.io40Referto di superficie
Password inviata senza cifraturaUn campo password su una pagina o in un modulo che non sono in HTTPS8Audit completo
jQuery fuori supportojQuery 1.x o 2.x, che non ricevono più correzioni di sicurezza3Audit completo
Script di terze parti senza controllo d’integritàScript di un altro dominio senza l’attributo integrity2Audit completo
Modulo inviato senza cifraturaUn modulo che invia i dati a un indirizzo http://2Audit completo
Errore tecnico mostrato nella paginaUno stack trace o la pagina d’errore di un framework nella home page2Audit completo
HSTS troppo breveUn header HSTS che dura meno di sei mesi1Audit completo
La Content-Security-Policy permette script inlineUna policy il cui script-src ammette 'unsafe-inline' o 'unsafe-eval'1Audit completo
Content-Security-Policy senza base-uriUna policy che non limita dove può puntare un tag <base>1Audit completo
Cross-Origin-Opener-Policy assenteL’header che isola la tua pagina dalle finestre di altri siti1Audit completo
Versione del software negli headerUn numero di versione negli header Server o X-Powered-By1Audit completo
Cookie su una pagina in cache pubblicaLa pagina scrive un cookie di sessione o di accesso (dal nome, o perché è HttpOnly) e insieme si lascia conservare dalle cache condivise (CDN, proxy)4Audit completo
ID di sessione nei link della paginaUn link o un form del tuo sito con un identificativo di sessione nell’indirizzo, per esempio PHPSESSID= o jsessionid=, o un form con un campo nascosto PHPSESSID3Audit completo
Pagina di accesso conservabile in cacheUna pagina con un campo password che non manda Cache-Control: no-store, quindi browser e proxy possono conservarne una copia (no-cache, private o max-age=0 da soli non lo impediscono)2Audit completo
Header di debugUn header di uno strumento di debug o di profiling, per esempio X-Debug-Token2Audit completo
HSTS senza sottodominiUn header HSTS sul tuo dominio principale senza includeSubDomains. Non conta sotto .app, .dev e le altre estensioni che i browser portano già in HTTPS, né sull’indirizzo di una piattaforma di hosting. Si giudica solo quando l’analisi finisce sul dominio principale stesso: su www. la risposta del dominio principale non la leggiamo, quindi il controllo non è esaminato1Audit completo
Content-Security-Policy che si fida di host di codice pubbliciUna policy il cui script-src permette un host da cui chiunque può pubblicare o richiamare codice: jsDelivr, unpkg, cdnjs, esm.sh, Skypack, JSPM, ajax.googleapis.com, www.google.com o apis.google.com. Non conta con strict-dynamic, che fa ignorare gli host ai browser1Audit completo
Cookie condiviso con ogni sottodominioUn cookie il cui attributo Domain copre tutto il tuo dominio, quindi leggibile da ogni sottodominio. Non conta sul sottodominio di un builder o sull’indirizzo di una piattaforma di hosting, e i cookie anti-bot delle CDN non contano1Audit completo
Indirizzo interno negli headerUn indirizzo IP privato o il nome di un server interno in un header di risposta1Audit completo

Sicurezza — certificato, dominio ed email (solo sul tuo dominio)

ControlloCosa guardiamoPuntiDove
TLS obsoleto o certificato in scadenzaCifratura precedente a TLS 1.2, o un certificato che scade entro 30 giorni12Audit completo
Record SPF assenteQuali server possono inviare email per il tuo dominio6Audit completo
Record DMARC assenteLa tua policy contro l’impersonificazione via email6Audit completo
DMARC solo in osservazioneUna policy DMARC che osserva ma non blocca (p=none)3Audit completo
Il dominio non riceve emailNessun server di posta pubblicato per il tuo dominio2Audit completo
Record CAA assenteQuali autorità possono emettere certificati per il tuo dominio1Audit completo
SPF che permette a chiunque di inviareUn record SPF che finisce con +all o ?all3Audit completo
MTA-STS assenteIl record che obbliga i server di posta a consegnare al tuo dominio solo con cifratura, se il dominio riceve email1Audit completo
TLS-RPT assenteIl record che chiede ai server di posta di segnalare le consegne cifrate non riuscite al tuo dominio, se il dominio riceve email. Più di un record, o uno senza un indirizzo rua utilizzabile, vale come assente1Audit completo
Record SPF non validoUn record SPF che richiede più di 10 ricerche DNS, contando i record che include, e che i server di posta trattano quindi come rotto1Audit completo
Versioni TLS vecchie accettateIl server accetta ancora TLS 1.0 o 1.1. Non ancora attivo: il risultato resta «non esaminato» e i punti non si tolgono mai. Il check approfondito mostra già a parte le versioni TLS accettate, senza punti (vedi sotto)8Audit completo
Problema nella catena del certificatoUna catena del certificato incompleta, autofirmata o non riconosciuta. Non ancora attivo: il risultato resta «non esaminato» e i punti non si tolgono mai. Il check approfondito mostra già a parte la catena, senza punti (vedi sotto)8Audit completo
Cifrari TLS deboliSuite TLS 1.2 senza forward secrecy, o in modalità CBC. Non ancora attivo: il risultato resta «non esaminato» e i punti non si tolgono mai. Il check approfondito mostra già a parte le suite di cifratura, senza punti (vedi sotto)2Audit completo
Dominio senza DNSSECIl dominio non è firmato con DNSSEC, letto dalla sua registrazione pubblica. Non ancora attivo: il risultato resta «non esaminato» e il punto non si toglie mai1Audit completo
  • Nel check approfondito, se il proprietario spunta la sua casella e il server è suo e non di una piattaforma condivisa, guardiamo la cifratura più da vicino: al massimo 7 connessioni TLS in più verso quel server, una dopo l’altra, entro 20 secondi, senza chiedere nessuna pagina. Mostrano quali versioni di TLS il server accetta, se permette ancora suite di cifratura senza forward secrecy o in modalità CBC, se la catena del certificato è completa e se il server allega il suo stato di revoca. Il referto le mostra a parte; non cambiano il punteggio di sicurezza. Due sono anche nominate fra le finding del proprietario, senza punti: un server che non accetta TLS 1.3, quando la connessione che prova solo TLS 1.3 viene rifiutata, e un certificato revocato solo quando lo dice lo stato di revoca allegato dal server, con la firma valida della tua autorità di certificazione e ancora in corso di validità — senza, non chiediamo all’autorità di certificazione, e non lo diciamo.

Performance

MisuraCosa misuriamoBuono → scarso
Tempo di risposta del server (40%)Il tempo prima che il server inizi a risponderesotto 200 ms → oltre 800 ms
Peso del JavaScript (30%)La dimensione totale dei tuoi scriptsotto 300 KB → oltre 1,5 MB
File JavaScript (10%)Quanti file di script tuoi vengono caricati3 o meno → 20 o più
Peso dell’HTML (10%)La dimensione del codice HTML della home pagesotto 15 KB → oltre 100 KB
Rendering lato server (10%)Se il contenuto è già nell’HTMLsì = 100 · no = 60

Accessibilità

ControlloPerché contaPeso
Le immagini hanno un testo alternativoGli screen reader possono descriverleAlto ×3
I campi dei moduli hanno un’etichettaChi compila sa cosa scrivereAlto ×3
I pulsanti hanno un nomeAnche i pulsanti con sola icona vengono lettiAlto ×3
I link hanno un testo leggibileSi capisce dove porta il linkMedio ×2
La pagina dichiara la sua linguaIl testo viene letto con la pronuncia giustaMedio ×2
I livelli dei titoli non saltanoLa struttura della pagina è navigabileBasso ×1
  • Nel check approfondito, se il proprietario spunta la sua casella, gli stessi sei controlli girano anche su al massimo 10 pagine come le mostra un browser isolato, insieme a tre che solo un browser può misurare: il contrasto del testo, l’ordine del fuoco da tastiera e lo stato dei controlli. Il referto li mostra a parte, con il numero di pagine coperte; non cambiano il risultato di accessibilità qui sopra.

SEO

ControlloPunti
La pagina chiede ai motori di ricerca di non indicizzarla−40
Titolo assente−15
Impostazione viewport per mobile assente−12
Meta description assente−10
Nessun titolo principale (H1)−10
Nessun link canonical−5
Più di un H1−5
Nessuna anteprima social (Open Graph)−5
Titolo più corto di 10 o più lungo di 60 caratteri−4
Descrizione più corta di 50 o più lunga di 160 caratteri−4
robots.txt assente o vuoto−3
Nessuna sitemap dichiarata né trovata−3
Alternative di lingua (hreflang) incomplete−3

Controlli per la tua tecnologia (senza punteggio)

Quando riconosciamo la tecnologia con cui è costruito il sito, e solo quando ne siamo sicuri, girano alcuni controlli in più sugli stessi file già scaricati — nessuna richiesta aggiuntiva. Compaiono in una sezione a parte del referto e non cambiano il punteggio di sicurezza. Se non ne siamo sicuri, il referto lo dice e questi controlli non girano. Una versione che non troviamo nelle nostre tabelle è riportata come sconosciuta, mai come aggiornata.

ControlloTecnologiaGravitàDove si vede
Versione di WordPress con una vulnerabilità notaWordPressCriticaReferto di superficie
Plugin di WordPress con una vulnerabilità notaWordPressCriticaReferto di superficie
WordPress obsoletoWordPressAltaReferto di superficie
Plugin di WordPress obsoletoWordPressAltaReferto di superficie
Versione di WordPress dichiarata in paginaWordPressMediaAudit completo
XML-RPC di WordPress pubblicizzatoWordPressMediaAudit completo
Tema di WordPress obsoletoWordPressMediaAudit completo
WooCommerce obsoletoWooCommerceAltaReferto di superficie
Carrello ricaricato a ogni paginaWooCommerceMediaAudit completo
Troppe app che caricano script nel negozioShopifyMediaAudit completo
Pagina e tema di Shopify pesantiShopifyMediaAudit completo
Magento 1, a fine vitaMagentoCriticaReferto di superficie
Drupal a fine vitaDrupalAltaReferto di superficie
Versione di Drupal dichiarataDrupalMediaAudit completo
Joomla a fine vitaJoomlaAltaReferto di superficie
Versione di Joomla dichiarataJoomlaMediaAudit completo
Versione di Next.js con una vulnerabilità notaNext.jsCriticaReferto di superficie
Next.js obsoletoNext.jsAltaReferto di superficie
Next.js in modalità sviluppo in produzioneNext.jsAltaReferto di superficie
Variabili pubbliche di Next.js con nomi da segretoNext.jsAltaReferto di superficie
Pagina con cookie messa in cache condivisaNext.jsAltaAudit completo
Header X-Powered-By di Next.jsNext.jsMediaAudit completo
File statici di Next.js senza cache lungaNext.jsMediaAudit completo
Nuxt 2, a fine vitaNuxtAltaReferto di superficie
Nuxt in modalità sviluppo in produzioneNuxtAltaReferto di superficie
Configurazione pubblica di Nuxt con nomi da segretoNuxtAltaReferto di superficie
Angular fuori supportoAngularAltaReferto di superficie
Angular in modalità sviluppoAngularAltaReferto di superficie
App Angular in un solo bloccoAngularMediaAudit completo
Vue 2, a fine vitaVueAltaReferto di superficie
Vue in versione di sviluppoVueAltaReferto di superficie
React in versione di sviluppoReactAltaReferto di superficie
Server di sviluppo aperto su InternetReactAltaReferto di superficie
Variabili d’ambiente con nomi da segreto nel bundleReactAltaReferto di superficie
App React in un solo blocco pesanteReactMediaAudit completo
Strumenti di debug di Laravel visibili dalla homeLaravelCriticaReferto di superficie
Versione di ASP.NET negli headerASP.NETMediaAudit completo
ViewState di ASP.NET molto pesanteASP.NETMediaAudit completo
Identificativo di sessione negli indirizziSpringMediaAudit completo

Privacy e tecnologia (senza punteggio)

  • Tracker prima del consenso — tracker pubblicitari e di analisi (Google, Meta, Hotjar, TikTok, LinkedIn, X, Pinterest, Snapchat, Microsoft Clarity, Yandex) che si caricano prima che il visitatore possa acconsentire. Mostrato nel referto di superficie.
  • Strumento di consenso ai cookie — se è presente un banner di consenso riconosciuto.
  • Link alla privacy policy — se la home page ne collega una.
  • Panoramica tecnologica — framework, hosting, strumenti di analisi e numero di servizi esterni. Contesto per la migrazione, non un problema in sé.

07Cosa un check automatico non può vedere#

Il check di superficie guarda solo la tua home page, da fuori. Non vede le aree riservate, le altre pagine, le regole del tuo database, le query lente o come il tuo codice tratta i dati. Dove un controllo dipende da contenuti che compaiono solo dopo l’esecuzione del JavaScript, scriviamo «non misurato» invece di fare ipotesi. L’audit completo copre ciò che il check di superficie non vede: lo svolge il nostro team, con l’accesso che ci concedi, tabella per tabella — e anche lì non leggiamo mai i tuoi dati.

08Domande frequenti#

Il check rallenta il mio sito?

No. È una sola visita breve, con un limite fisso di tempo e di dimensione: paragonabile a un visitatore che apre la tua home page.

Avete trovato la chiave del mio database. Qualcuno ha avuto accesso ai miei dati?

Non da parte nostra. Segnaliamo che la chiave è visibile nel tuo codice pubblico; non la usiamo mai. Se sia un rischio reale dipende dalle impostazioni di row-level security, che l’audit completo verifica.

Perché il mio punteggio è più basso del previsto?

Ogni problema toglie punti, e quelli gravi ne tolgono molti: una sola chiave segreta esposta costa 40 punti. Anche i problemi non mostrati nel referto di superficie contano; il referto ti dice quanti sono.

Posso impedire allo scanner di controllare il mio sito?

Sì. Aggiungi User-agent: Root92-MigrationScanner e Disallow: / al tuo robots.txt, oppure vedi la pagina «Che cos’è lo scanner».

Cosa conservate dopo il check?

Solo i risultati, mai il contenuto delle tue pagine. Se non ci lasci la tua email, non conserviamo nessun contatto. Abbiamo adottato misure tecniche e organizzative adeguate per tenere al sicuro i tuoi dati. Dettagli e tempi di conservazione sono nell’informativa privacy.

↑ Torna su

Continua a leggere

Che cos’è lo scanner →Hai trovato Root92-MigrationScanner nei log. Qui c’è chi siamo, cosa leggiamo, cosa non leggiamo mai, e come fermarci.Informativa privacy →Cosa raccogliamo quando fai il check di superficie, perché, per quanto tempo, e come farlo cancellare.Condizioni d’uso →Le regole per usare il check di superficie e il check approfondito: analizza solo siti tuoi o che hai il diritto di far analizzare.
← Torna al check
Root scanner

Hai creato la tua app con l’IA. Ora verifica com’è fatta davvero: in pochi secondi il check di superficie ti mostra che cosa si vede dall’esterno.

Scanner

Come funziona il checkChe cos’è lo scanner

Legale

Informativa privacyCondizioni d’usoImpostazioni cookie

Contatti

Scriviciinfo@root92.it

© 2026 Root92 sh.p.k.