Ogni volta che un programma visita il tuo sito si presenta con un biglietto da visita: lo user agent, una riga di testo che dice chi è. Il browser di un visitatore scrive qualcosa come «Chrome su Windows», Google scrive «Googlebot», Facebook scrive «facebookexternalhit». Fra i nomi che Security Intelligence blocca di default c’è Apache-HttpClient. In questo articolo vediamo perché, cosa c’entra LinkedIn e come abbiamo fatto in modo che le anteprime dei tuoi link continuino a funzionare.

Cos’è Apache-HttpClient

Apache-HttpClient non è un servizio e non è un’azienda: è una libreria di programmazione per Java, cioè un pezzo di codice gratuito che chiunque può inserire nel proprio programma per scaricare pagine web. Se lo sviluppatore non imposta un nome diverso, il programma si presenta automaticamente come «Apache-HttpClient», seguito dal numero di versione.

È uno strumento legittimo e diffusissimo. Il problema è proprio questo: lo usa chiunque, e chi lascia il nome predefinito di solito non ha intenzione di farsi riconoscere.

Perché lo blocchiamo

Guardando il traffico reale dei siti che ospitiamo, le richieste che si presentano come Apache-HttpClient arrivano quasi sempre da:

  • programmi che copiano i contenuti: testi, prezzi, schede prodotto, immagini;
  • scanner di vulnerabilità che provano in automatico indirizzi noti di plugin e pannelli;
  • tentativi di accesso ripetuti alle pagine di login;
  • script fatti in casa che scaricano il sito a raffica, senza rispettare robots.txt né i tempi del server.

Un servizio serio che visita i siti altrui si presenta con il proprio nome e un indirizzo dove informarsi, come fanno Googlebot o il bot di Facebook. Chi si presenta solo con il nome di una libreria generica non dice chi è, e non c’è modo di sapere cosa farà. Per questo Security Intelligence lo tratta come un bot malevolo e risponde con un errore 403: la richiesta viene respinta prima di arrivare a WordPress o al negozio, senza consumare risorse.

Il caso LinkedIn

Qui arriva la sorpresa. Quando qualcuno condivide un tuo link su LinkedIn, LinkedIn visita la pagina per prendere titolo, descrizione e immagine dell’anteprima. Il suo bot si presenta così:

LinkedInBot/1.0 (compatible; Mozilla/5.0; Apache-HttpClient +http://www.linkedin.com)

LinkedIn dice chi è, «LinkedInBot», e fin qui va bene. Ma nella stessa riga aggiunge anche il nome della libreria che usa, Apache-HttpClient. È un’abitudine poco felice: è come presentarsi alla porta dicendo il proprio nome e, subito dopo, il nome di uno strumento usato da mezzo mondo per forzare le serrature. Nessuna regola lo vieta, ma i sistemi di protezione che riconoscono i bot dal loro biglietto da visita vedono quella parola e reagiscono di conseguenza.

Con un blocco generico basato solo sul nome, il risultato sarebbe questo: il link condiviso su LinkedIn esce senza immagine e senza titolo, solo con l’indirizzo nudo. Il sito funziona benissimo per i visitatori, ma l’anteprima sul social no. È un problema che si incontra spesso con i sistemi di protezione che non distinguono i casi.

Come lo gestiamo noi

Security Intelligence riconosce LinkedInBot e lo lascia passare anche quando il blocco di Apache-HttpClient è attivo. Gli altri programmi che si presentano solo con il nome della libreria restano bloccati, mentre le anteprime di LinkedIn funzionano. Non devi fare nulla: vale per tutti i siti, senza cambiare le tue impostazioni.

Se vuoi verificare come LinkedIn vede una tua pagina, usa il suo strumento gratuito, il Post Inspector: incolli l’indirizzo e vedi titolo, descrizione e immagine dell’anteprima. Serve anche ad aggiornare un’anteprima vecchia rimasta in memoria su LinkedIn.

Se un’anteprima continua a non comparire, di solito il motivo è un altro: manca l’immagine di condivisione nella pagina, oppure l’immagine è troppo piccola. In quel caso apri un ticket e lo verifichiamo insieme.

Non è solo LinkedIn

LinkedIn è l’esempio più noto, ma non l’unico: capita che strumenti di marketing, comparatori o servizi di monitoraggio si presentino con il nome della libreria che usano (Apache-HttpClient, python-requests, Go-http-client) invece del proprio. Per un sistema di protezione sono indistinguibili da uno script qualunque.

Se un servizio che usi legittimamente non riesce più a leggere il tuo sito, la domanda da fare al suo fornitore è semplice: con quale user agent si presenta? Un servizio ben fatto usa un nome proprio e riconoscibile. In attesa che lo faccia, puoi decidere dal pannello di Security Intelligence, nella scheda Bot, se lasciarlo passare.

In sintesi

  • Apache-HttpClient è una libreria generica: chi si presenta solo con quel nome è quasi sempre uno script anonimo, e per questo Security Intelligence lo blocca di default.
  • LinkedIn inserisce «Apache-HttpClient» nel proprio user agent: un blocco generico farebbe sparire le anteprime dei link condivisi.
  • Security Intelligence riconosce LinkedInBot e lo lascia passare, quindi le anteprime funzionano senza che tu debba fare nulla.
  • Per controllare un’anteprima usa il Post Inspector di LinkedIn.

Altri articoli su Sicurezza e vulnerabilità

Parliamone

Un hosting che ti spiega le cose, e poi le fa

Questi articoli nascono dalle domande dei nostri clienti. Se vuoi un hosting dove dietro ogni risposta c’è un tecnico vero, parliamone.

  • 4,9 su 5 su Trustpilot264 recensioni, il 96% a cinque stelle
  • Risponde un tecnicoIn italiano, da chi gestisce i server
  • Il trasloco lo facciamo noiSito, database e posta, controllati prima di spostare i DNS