Deprecated: Creation of dynamic property Timber\Site::$pingback is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Site.php on line 180

Deprecated: Creation of dynamic property Timber\User::$name is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/User.php on line 118

Deprecated: Creation of dynamic property Timber\Post::$os_meta is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$has_disclaimer is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_edit_lock is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_edit_last is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$tipologia is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_tipologia is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$attributi is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_attributi is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$in_evidenza_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_in_evidenza_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$inviato_in_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_inviato_in_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$fonte is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_fonte is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$fonte_url is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_fonte_url is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_category is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_blz_affiliation_attributes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_content_type is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_attributes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_speciali is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_focuskw is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_metadesc is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_linkdex is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_content_score is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_focuskeywords is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_keywordsynonyms is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_estimated-reading-time-minutes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_thumbnail_id is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$os_previous_publish_date is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$os_notification_id is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_indexnow_last_ping is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_date_gmt is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$comment_status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$ping_status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_password is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_name is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$to_ping is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$pinged is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_modified is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_modified_gmt is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_content_filtered is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$guid is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$menu_order is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_mime_type is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$comment_count is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$filter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71
Perché ChatGPT blocca la tastiera finché non verifica il browser

Perché ChatGPT blocca la tastiera finché non verifica il browser

Un'analisi tecnica rivela che ChatGPT usa Cloudflare Turnstile e controlli sullo stato React per bloccare i bot prima dell'interazione. L'input nel campo per l'inserimento del prompt è attivato solo a valle di una serie di attente verifiche.

L’interfaccia Web di ChatGPT nasconde un meccanismo invisibile: prima ancora di poter digitare un prompt, il browser esegue una serie di controlli lato client orchestrati da Cloudflare. Non si tratta di una semplice verifica CAPTCHA o di un controllo sull’indirizzo IP. Il comportamento viene a galla analizzando il codice caricato nel browser e i payload scambiati durante il caricamento iniziale della pagina.

Le moderne piattaforme AI espongono interfacce sempre più complesse, spesso costruite come applicazioni single-page basate su React. In parallelo, la crescita esponenziale dell’abuso automatizzato – scraping, bot API non autorizzate, tentativi di sfruttare l’accesso gratuito – ha imposto l’introduzione di sistemi di difesa più sofisticati.

Un ricercatore indipendente ha messo sotto la lente il funzionamento di ChatGPT scoprendo che il chatbot di OpenAI integra un livello avanzato di protezione che combina fingerprinting del browser, verifica dello stato applicativo e correlazione con la rete Cloudflare.

ChatGPT: il controllo che blocca l’input prima ancora dell’interazione

Il comportamento più evidente è semplice da osservare: l’utente non può iniziare a digitare immediatamente dopo il caricamento della pagina principale di ChatGPT. Il campo di input resta inattivo finché non termina una verifica invisibile. Il sistema effettua una validazione completa del client prima di consentire qualsiasi interazione.

Alla base di questa logica c’è Cloudflare Turnstile, una soluzione alternativa ai CAPTCHA tradizionali che opera in modo trasparente. Nel caso di ChatGPT, però, l’implementazione va oltre l’uso standard: il codice eseguito nel browser effettua una serie di controlli multilivello e restituisce un token che abilita l’interfaccia.

Reverse engineering: cosa verifica realmente il codice

L’analisi del traffico di rete e dei payload JavaScript ha permesso di isolare centinaia di moduli cifrati. Questi moduli, una volta decodificati, rivelano una struttura basata su una virtual machine custom che esegue codice in formato bytecode (istruzioni a basso livello interpretate dalla macchina virtuale) reso difficile da analizzare attraverso operazioni XOR, una tecnica che combina i dati con una chiave per mascherarne il contenuto.

Il programma analizza almeno 55 proprietà distinte, suddivise in tre categorie principali.

Il primo livello riguarda il fingerprint del browser: informazioni su WebGL, risoluzione dello schermo, font disponibili, capacità hardware e comportamento delle API grafiche. Il secondo livello coinvolge i metadati della rete Cloudflare: indirizzo IP, geolocalizzazione approssimata e intestazioni generate dagli edge server.

Il terzo livello è il più interessante: riguarda lo stato interno dell’applicazione React. Il codice verifica la presenza di strutture specifiche, elementi che esistono solo se l’applicazione React risulta completamente caricata e gestita da un normale browser Web. Un browser headless di base che si limita a scaricare il codice HTML della pagina senza eseguire JavaScript non è in grado di provocare la generazione di tali strutture.

Verifica dello stato React: una difesa a livello applicativo

L’aspetto più innovativo del sistema approntato dagli ingegneri di OpenAI riguarda proprio la verifica dello stato interno dell’applicazione. Non basta dimostrare, lato client, l’uso di un browser reale: è necessario che il software in uso dia conferma di poert eseguire correttamente l’intera logica frontend prevista da ChatGPT.

L’approccio implementato nel chatbot sposta la difesa dal livello di rete a quello applicativo. I sistemi anti-bot tradizionali si concentrano su header HTTP, pattern di traffico o caratteristiche del browser. Qui, invece, il controllo si estende fino alla struttura dati generata dal rendering React.

Costruzione del token e flusso di validazione

Una volta raccolti i dati, il sistema alla base del funzionamento di ChatGPT genera un token di validazione, inviato ai server di OpenAI. Solo dopo la verifica positiva, l’interfaccia abilita l’input utente. Il token non si limita a certificare la presenza di un vero browser lato client: incorpora segnali derivati da tutte le tre dimensioni analizzate.

Il processo avviene interamente in background e introduce una latenza minima nella maggior parte dei casi. Tuttavia, in condizioni di rete lenta o su dispositivi meno performanti, il ritardo diventa percepibile. Alcuni utenti osservano blocchi temporanei dell’interfaccia o ritardi nell’attivazione del campo di input.

Limiti e possibili evoluzioni

L’architettura oggi utilizzata da ChatGPT rende più difficile utilizzarlo come endpoint API non ufficiale.

Il ricercatore che ha analizzato da vicino il funzionamento del chatbot OpenAI osserva tuttavia come il sistema non è invulnerabile. Qualsiasi meccanismo basato su codice eseguito lato client può essere analizzato, replicato o emulato con sufficiente tempo e risorse. Il reverse engineering dimostra che il bytecode offuscato non rappresenta una barriera definitiva.

La tendenza, però, è chiara: le piattaforme AI stanno adottando tecniche sempre più profonde per distinguere utenti reali da automazioni. Il controllo dello stato applicativo rappresenta un passo ulteriore rispetto al fingerprinting tradizionale e anticipa soluzioni ancora più integrate tra frontend e infrastruttura di rete.

Ti consigliamo anche

Link copiato negli appunti