CloudFlare è un ottimo servizio in grado anche nella versione gratuita di mitigare molte minacce e ridurre il traffico spazzatura, utilissimo anche per gli ecommerce che vendono all'estero grazie ai DNS distribuiti, che operano come reverse proxy rendono più reattiva la risposta del nostro negozio in PrestaShop.

Risolvere il problema dei continui logout dal Backoffice

Il primo problema che si riscontra abilitando la protezione proxy di CloudFlare è quello dei continui logout dal BackOffice, ovvero di richieste di accedere nuovamente al pannello di controllo di PrestaShop. Questo succede perché l'IP continua a variare, è quindi necessario quando si usa CloudFlare come protezione o per accelerare il proprio ecommerce, modificare un parametro della configurazione della nostra istanza PrestaShop. 

Per farlo andiamo in:

Parametri Avanzati -> Amministrazione

E disabilitiamo la voce: Verifica l'indirizzo IP del Cookies

In questa schermata possiamo anche aumentare la durata della vita del cookies di login, però per motivi di sicurezza non esagerate, è necessario che dopo un periodo di alcuni minuti la sessione scada e vi venga nuovamente richiesto l'accesso all'area di amministrazione. 

CloudFlare IP reale e Plesk

L'utilizzo di CloudFlare presenta un ulteriore problema lato server, che non sarà in grado di rilevare nei propri log IP reale del visitatore come indicato qui. Ovviamente tale configurazione è da chiedere a chi gestisce il vostro Hosting, nel caso di Plesk (non integrando più mod_cloudflare) è necessario andare in:

Domain -> Hosting & DNS - Apache & nginx Setting

E in Additional nginx directives

Inseriamo quanto segue: 

#CloudFlare
set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 104.16.0.0/12;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 131.0.72.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 199.27.128.0/21;
set_real_ip_from 2400:cb00::/32;
set_real_ip_from 2606:4700::/32;
set_real_ip_from 2803:f800::/32;
set_real_ip_from 2405:b500::/32;
set_real_ip_from 2405:8100::/32;

# use any of the following two
real_ip_header CF-Connecting-IP;
#real_ip_header X-Forwarded-For;

Aggiungendo queste direttive sia Nginx che Apache saranno in grado di leggere l'IP reale del visitatore.

La lista degli IP di Cloudflare la troviamo qui: https://www.cloudflare.com/it-it/ips/ 

Conclusioni

Purtroppo rimangono alcuni problemi sia con la versione Free che Pro, non ci sarà possibile impostare un Time Out più alto di 100s, quindi molte operazioni massive andranno in errore 524. Quindi se necessitiamo di andare oltre questo limite è necessario un abbonamento Enterprise (molto costoso), oppure necessitiamo per il backend di un sottodominio (es. admin.tuodominio.it) settato nei DNS non in gestione proxy, ovvero con la nuvoletta grigia. Una configurazione divenuta molto complessa con PrestaShop 1.7, ma una soluzione utile per evitare questo tipo di problematica. Usando un sottodominio diverso, viene mento anche la necessità di rimuovere la verifica dell'IP del cookie, che è un importante misura di sicurezza.

Una delle funzionalità interessanti disponibili nella versione PRO, è la CDN, con relativa ottimizzazione delle immagini, i punti di forza di questa soluzione oltre la conversione in WebP, è il ridimensionamento delle immagini in base alla richiesta del dispositivo; in questo modo per esempio i dispositivi mobile e desktop, avranno immagini ottimizzate. In realtà è possibile effettuarlo anche lato server con l'uso del modulo Page Speed di Google, ma con un costo elevato in termini di TTFB, quindi sconsigliato. Con l'uso della CDN non vi sarà nessun peggioramento del carico e in più si avranno tutti i vantaggi derivanti di una rete per la condivisione dei contenuti distribuita, ovvero le immagini saranno fornite da server più vicini all'utente, utilissimo se il nostro eccommerce opera per esempio anche in America e ASIA.

Operazione che comunque vista la difficoltà tecnica è da effettuare solo nel caso si utilizzi una versione PRO di CloudFlare, se la nostra necessità è quella di proteggere il nostro ecommerce da un attacco sporadico possiamo attivare il proxy solo per il periodo necessario e disattivarlo quando necessitiamo di effettuare operazioni massive e utilizzare la versione FREE di CloudFlare.

Autore: Loris Modena

Loris Modena

SENIOR DEVELOPER

Per Ind Loris Modena titolare di Arte e Informatica, inizia a lavorare nel settore informatico nel 1989 quale sistemista addetto alla manutenzione e installazione di sistemi informatici. Inizia a programmare per il web nel 1997 occupandosi di programmazione CGI in PERL e successivamente passando alla programmazione in PHP e JavaScript. In questo periodo si avvicina al mondo Open source e alla gestione di server Linux. 

prodotto aggiunto alla lista