Base di conoscenze

1 000 FAQ, 500 tutorial e video esplicativi. Qui ci sono delle soluzioni!

Questa guida dettaglia l'intestazione "X-Frame-Options", utilizzata per proteggere il tuo sito dagli attacchi di clickjacking (dirottamento di clic).

Il valore ALLOW-FROM è ora obsoleto. Per autorizzare un dominio specifico, è consigliato utilizzare l'intestazione Content-Security-Policy (CSP) con la direttiva frame-ancestors.

 

Valori per l'intestazione X-Frame-Options

Questa intestazione indica al browser se deve autorizzare o meno la visualizzazione della tua pagina in un tag <frame> o <iframe>.

  1. "DENY" : Divieto totale. Il sito non può essere caricato in alcun frame, nemmeno provenienti dal tuo stesso sito.
  2. "SAMEORIGIN" : Consente la visualizzazione in iframe solo se il sito padre ha lo stesso dominio del contenuto.

Implementare l'intestazione

Attraverso il file .htaccess (consigliato per tutto il sito) :

Header set X-Frame-Options "SAMEORIGIN"

Oppure tramite PHP (per una pagina specifica) :

<?php
header('X-Frame-Options: SAMEORIGIN');
?>

 

L'alternativa moderna: Content-Security-Policy (CSP)

Se devi autorizzare un sito esterno specifico (es: domain.xyz) a integrare il tuo contenuto, non utilizzare più X-Frame-Options ma l'intestazione seguente nel tuo .htaccess :

Header set Content-Security-Policy "frame-ancestors 'self' https://domain.xyz"

Questa regola consente al tuo sito ('self') e a domain.xyz di visualizzarti in un iframe.


Questa FAQ è stata utile?

Questa guida spiega come gestire Memcached e, in particolare, come verificare se questo sistema di caching in memoria funziona correttamente sul tuo Server Cloud gestito.

 

Prerequisiti

 

Verificare l'esecuzione di Memcached

Per verificare il corretto funzionamento di Memcached:

  1. Copiare il codice seguente in un file PHP (connessione al server memcache locale):

    $fp = fsockopen("localhost", 11211);
    if ($fp) {
    // on demande les stats
    fwrite($fp, "stats\n");
    while (!feof($fp)) {
    $buf = rtrim(fgets($fp));
    if (preg_match('/^STAT curr_items ([0-9]+)$/', $buf, $matches)) {
    // le nombre d'items stockes
    print $matches[1] . PHP_EOL;
    } elseif (preg_match('/(END|ERROR)/', $buf)) {
    // fin des stats
    break;
    }
    }
    fclose($fp);
    } else {
    print "Error: cannot connect to local memcached server: $!" . PHP_EOL;
    }
  2. Caricare il file PHP sul tuo hosting.
  3. Eseguire il file PHP.

Lo script restituisce il numero di elementi memorizzati nella cache nella memoria del server.

 

Attivare Memcached su…

… Prestashop

L'integrazione nativa di Memcached nell'applicazione Prestashop semplifica la sua configurazione. Per attivarla:

  1. Accedi al tuo spazio di amministrazione Prestashop.
  2. Vai alla scheda Impostazioni avanzate.
  3. Seleziona Prestazioni.
  4. Scegli nel menu a discesa sotto Utilizzare la cache nella sezione Caching.
  5. Seleziona CacheMemcached.
  6. Aggiungi un server fornendo le informazioni richieste come
    1. l'indirizzo IP: 127.0.0.1
    2. la porta: 11211
    3. il peso: 1

Puoi verificare le informazioni facendo clic sul pulsante "Prova server" prima di salvarle in basso nella sezione "Caching".

Una volta completata questa fase, la tua applicazione PrestaShop è pronta per utilizzare Memcached per memorizzare nella cache alcune chiamate API, chiamate al database e oggetti.


Questa FAQ è stata utile?

Questa guida consente di risolvere un problema sul CMS Prestashop v9.x riguardante la generazione di fatture PDF dal pannello di amministrazione (Back Office), in particolare quando viene utilizzata la lingua francese.

 

Il problema

Durante il tentativo di visualizzazione o download di una fattura PDF per un ordine in lingua francese, PrestaShop (nella versione 9.x) restituisce un Errore 500. Questo malfunzionamento è dovuto a un'incompatibilità tra la libreria di generazione PDF (TCPDF) che utilizza il carattere predefinito (helvetica) e le configurazioni di hosting.

 

Definire un carattere compatibile

La soluzione consiste nel forzare l'uso del carattere freesans, più compatibile, tramite un file di configurazione personalizzato.

È fortemente consigliato creare un file defines_custom.inc.php. Questo metodo è il più sicuro perché garantisce che la correzione non verrà persa durante gli aggiornamenti del core di PrestaShop.

Per fare questo:

  1. Accedi alla tua installazione PrestaShop 9.x tramite FTP o il Gestore di file.
  2. Naviga fino alla directory /config/.
  3. Crea un nuovo file denominato defines_custom.inc.php.
  4. Modifica il file defines_custom.inc.php e aggiungi il seguente contenuto:

    <?php
    /**
     * Avoid error PDF, force font 'freesans'.
     */
    define('PDF_FONT_NAME_MAIN', 'freesans');
  5. Salva il file e prova a generare una fattura in francese.

Questa FAQ è stata utile?

Questa guida spiega come modificare un'offerta di Hosting Web esistente per esempio per poter ospitare siti Web aggiuntivi se il quota massima di siti è raggiunta, o ottenere una soluzione di hosting più recente per beneficiare delle ultime versioni di PHP & MySQL.

 

Modificare l'offerta di hosting Web per…

 

… ordinare siti, spazio su disco o IP aggiuntivi

Per accedere al configuratore dell'hosting Web:

  1. Clicca qui per accedere alla gestione del tuo hosting sul Manager Infomaniak (hai bisogno di aiuto?).
  2. Clicca su il menu delle azioni ⋮ situato a destra dell'hosting interessato.
  3. Clicca su Modifica offerta:
  4. Aumenta i valori che desideri modificare.
  5. Clicca sul pulsante Avanti per accedere al pagamento delle modifiche apportate all'hosting:

 

… passare a un server più recente

Per ottenere una soluzione di hosting su un server più recente e beneficiare, tra le altre cose, delle ultime versioni di PHP & MySQL, puoi…

  • … prendere visione di questa altra guida seguendo la procedura indicata fino in fondo:
  • … prendere visione di questa altra guida seguendo la procedura indicata fino al punto 4 quindi clicca sul pulsante per aggiornare:

Se nessun banner informativo viene visualizzato, significa che stai già usufruendo di un'offerta di hosting recente.


Questa FAQ è stata utile?

Questa guida spiega come beneficiare di nuove versioni di PHP, MySQL e di numerosi altri pacchetti migrando un Server Cloud su una nuova infrastruttura Infomaniak.

 

Premessa

  • La migrazione è gratuita e si svolge in 3 fasi:
    1. Infomaniak mette a disposizione un Server Cloud di ultima generazione con le stesse caratteristiche di quello attuale, allo stesso prezzo e con la stessa durata di impegno.
    2. Hai un mese di tempo per spostare i tuoi hosting sul nuovo Server Cloud messo a disposizione (leggi sotto).
    3. Quando i tuoi hosting sono spostati sul nuovo server, disdici l'account del vecchio Server Cloud.
  • Gli accessi FTP e i database non cambiano.
  • Cambiano solo a livello di hosting le versioni supportate di PHP e MariaDB, nonché gli indirizzi IPv4 e IPv6 del server.
  • I nomi host (hostnames) non cambiano e vengono aggiornati automaticamente per puntare ai nuovi indirizzi IP.
  • Durante questa operazione, le statistiche vengono reimpostate.

 

Procedura di migrazione

Migrando i tuoi dati sulla nuova infrastruttura Cloud, aumenti le prestazioni e la affidabilità dei tuoi siti che accederanno alle ultime tecnologie:

  1. Clicca qui per accedere alla gestione del tuo prodotto sul Manager Infomaniak (hai bisogno di aiuto?).
  2. Clicca direttamente sul nome attribuito al prodotto interessato.
  3. Clicca sul pulsante blu nel riquadro "Fai evolvere il tuo Server Cloud" (o su Gestisci):

Questa FAQ è stata utile?

Questa guida riguarda il modulo Apache mod_auth_mysql che consente l'autenticazione degli utenti e l'autorizzazione all'accesso tramite un database MySQL.

 

Con un hosting condiviso

Il modulo mod_auth_mysql non è disponibile con gli hosting condivisi; è necessario considerare un Server Cloud o utilizzare script PHP e sessioni.


Questa FAQ è stata utile?

Questa guida spiega cosa devi determinare in qualità di visitatore di un sito web se ricevi un errore di tipo 403 per risolvere questo problema.

 

Cos'è l'errore 403?

Il codice di errore HTTP 403 significa generalmente che l'accesso a una risorsa è negato al cliente dal server.

 

In quale caso si verifica questo errore?

L'utente non è autenticato: il server richiede che l'utente si identifichi per accedere alla risorsa. Questo può essere il caso per pagine private che richiedono l'autenticazione, ad esempio.

L'utente è autenticato ma non ha i permessi necessari: il server riconosce l'utente ma non gli concede l'accesso alla risorsa richiesta a causa di restrizioni di permessi o ruoli. Questa causa di errore 403 può essere un problema di permessi errati, su una cartella o un file. Per una cartella, il messaggio di errore è di tipo "403 Forbidden", per un file, "failed to open stream: Permission denied". In questo caso, devi verificare che i permessi delle tue cartelle/file siano corretti, ovvero almeno 644 per un file e 755 per una cartella. Prendi visione di questa altra guida.

L'indirizzo IP dell'utente è bloccato o limitato: il server può bloccare l'accesso a un indirizzo IP specifico per motivi di sicurezza, protezione contro gli attacchi... Prendi visione di questa altra guida.

La risorsa richiesta non esiste sul server: in questo caso, il server restituisce un errore 403 invece di un errore 404 per evitare la divulgazione di informazioni riservate. Se provi ad accedere semplicemente alla tua homepage o a una parte del tuo sito, indicando un indirizzo di tipo www.domaine.xyz o www.domaine.xyz/dossier/, assicurati che ci sia una homepage denominata "index.html o .htm o .php" posizionata correttamente (alla radice del tuo spazio FTP, nella directory /web, o nella directory /dossier/). Prendi visione di questa altra guida.

Inoltre, verifica che non ci siano lettere maiuscole nel nome del file, tutti i nomi di file o cartelle presenti devono essere in minuscolo, senza accenti né spazi.

Errore legato allo script: se stavi eseguendo uno script, compilando un modulo, caricando un file online e ricevi questo tipo di messaggio:

Accès interdit!
Vous n'avez pas le droit d'accéder à l'objet demandé.
Soit celui-ci est protégé, soit il ne peut être lu par le serveur.
Si vous pensez qu'il s'agit d'une erreur du serveur, veuillez contacter le gestionnaire du site.
Error 403

la causa potrebbe essere un filtro che impedisce l'uso non desiderato degli script da parte di spammer. Infatti, l'antivirus Infomaniak blocca il caricamento di file tramite script o tramite FTP. Questo significa concretamente che quando un hacker invia un file identificato come virus tramite un modulo, uno script non sicuro o tramite FTP, la sua installazione viene bloccata direttamente, il file non viene caricato sul server e il caricamento genera un errore 403.

 

In caso di falso positivo, contatta il supporto Infomaniak fornendo l'URL della pagina in cui incontri questo messaggio di errore per diagnosticare con precisione l'origine del problema.

Esistono tuttavia numerosi altri casi in cui potresti ricevere un messaggio "403 forbidden" e per motivi molto diversi (script PHP, perl, mod_security, .htaccess, ...).


Questa FAQ è stata utile?

Questa guida riguarda ImageMagick, una suite software potente per la manipolazione delle immagini, disponibile sugli Hosting Web e Server Cloud Infomaniak.

 

Installazione semplificata: Per installare ImageMagick o le sue estensioni, è consigliabile utilizzare Fast Installer dal tuo Manager.

 

ImageMagick e soluzioni di manipolazione delle immagini

Sono a tua disposizione diversi strumenti per elaborare i tuoi visivi (ridimensionamento, conversione, filigrane):

  1. ImageMagick (CLI): la suite principale utilizzabile tramite riga di comando (via SSH); il comando moderno è magick, ma la vecchia sintassi convert rimane disponibile.
  2. Estensione PHP imagick: è la soluzione più comune per i siti web (WordPress, ecc.); consente di utilizzare ImageMagick direttamente nei tuoi script PHP.
  3. Biblioteca GD: un'alternativa più leggera, spesso preinstallata, ideale per manipolazioni semplici (miniature, testo sull'immagine).
  4. PerlMagick: interfaccia dedicata agli script Perl per accedere alle funzionalità di ImageMagick.

 

Percorsi di accesso e comandi

Sulle infrastrutture Infomaniak, ImageMagick è installato in modo standard. Gli eseguibili si trovano nella seguente directory:

/usr/bin/

Ecco i principali comandi disponibili:

ComandoUso principale
magick (o convert)Convertire, ridimensionare e trasformare le immagini.
identifyOttenere i metadati di un file (formato, dimensione, ecc.).
mogrifyApplicare una modifica direttamente sul file originale.
compositeSovrapporre più immagini (es: aggiunta di un logo come filigrana).

Per testare la presenza del modulo Perl Image::Magick, puoi utilizzare il seguente comando:

perl -e 'use Image::Magick; print "Installed\n"';

Questa FAQ è stata utile?

Questa guida riguarda la sincronizzazione dei server tramite il protocollo NTP (Network Time Protocol) e la configurazione del fuso orario sui server di Infomaniak.

 

Sincronizzazione precisa dei server tramite NTP

I server di Infomaniak sono tutti sincronizzati tramite il protocollo NTP. L'azienda mette a disposizione i propri server NTP stratum-1 accessibili al pubblico per un'utilizzo flessibile.

Per integrare questi server nelle tue impostazioni, utilizzare la registrazione seguente: pool.ntp.infomaniak.ch.

La configurazione predefinita del fuso orario è in UTC. Tuttavia, le funzioni PHP sono progettate per tenere conto di diversi fusi orari in base alle esigenze specifiche.

Per regolare il fuso orario nei tuoi script PHP, utilizzare la funzione date_default_timezone_set('UTC').

 

MySQL: specifiche temporali

L'infrastruttura Infomaniak supporta le funzionalità che permettono di lavorare con i dati temporali in modo preciso ed efficiente, tenendo conto dei fusi orari, il che è cruciale per molte applicazioni moderne:

  • MySQL utilizza un database di fusi orari per memorizzare e gestire le informazioni sui fusi orari.
  • La tabella mysql.time_zone contiene i dati dei fusi orari, incluse le informazioni sui disallineamenti temporali, i nomi dei fusi orari, ecc.
  • La funzione CONVERT_TZ viene utilizzata per convertire un'ora da un fuso orario a un altro in MySQL con la sintassi seguente: CONVERT_TZ(dt, from_tz, to_tz), dove:
    • dt è la data/ora da convertire.
    • from_tz è il fuso orario di origine.
    • to_tz è il fuso orario di destinazione.
  • Esempio: CONVERT_TZ('2024-05-14 12:00:00', 'UTC', 'America/New_York') convertirà l'ora 12:00:00 UTC in orario locale a New York.

Questa FAQ è stata utile?

Questa guida ti aiuta a configurare l'intestazione Access-Control-Allow-Origin, un header HTTP che specifica quale origine (dominio, protocollo e porta) può accedere alle risorse su un server. Questa intestazione viene utilizzata per controllare l'accesso cross-origin (CORS) da un'applicazione web.

 

Elenco dei domini autorizzati

È possibile aggiungere l'origine di una richiesta all'elenco dei domini autorizzati ad accedere alle risorse del server aggiungendola ai valori dell'intestazione Access-Control-Allow-Origin.

Per autorizzare, ad esempio, il sito https://domain.xyz ad accedere alle risorse con CORS, l'intestazione deve essere impostata come segue:

Access-Control-Allow-Origin: https://domain.xyz

Puoi impostarlo tramite la funzione header() di PHP ispirandoti a questa guida in particolare.

Se è necessario che questa intestazione sia applicata ovunque, è possibile utilizzare un auto-prepend.


Questa FAQ è stata utile?

Questa guida dettaglia le regole specifiche da rispettare durante la creazione di una password utente con mysqli_connect() che contiene il carattere “dollaro” $ sulle piattaforme Infomaniak.

 

Premessa

  • Se durante l'utilizzo di mysqli_connect(), ricevi il messaggio di errore "Accesso negato per l'utente" e la tua password del database utente contiene un segno $, il problema potrebbe essere dovuto al funzionamento delle stringhe in PHP.
  • Il problema può verificarsi anche con degli script di messaggistica.

 

Regole da rispettare

Quando viene utilizzato il carattere speciale $ in una password utente e questo è seguito da qualsiasi altro carattere diverso da un numero, il nome della variabile non è valido e la sostituzione non viene eseguita correttamente.

Ecco alcune soluzioni per correggere questo problema:

  • Inserisci la password tra virgolette semplici: '$******'
  • Assicurati che un numero segua direttamente il dollaro: "$2*****"
  • Usa una barra inversa per "scappare" il dollaro nella password: "\$****"

Questa FAQ è stata utile?

Questa guida spiega come risolvere un problema di importazione di un file .csv in una tabella MySQL. L'alternativa proposta consiste nel leggere il file CSV riga per riga con PHP e inserire i dati nel database MySQL.

 

Funzione "LOAD DATA LOCAL INFILE" disattivata

La funzione LOAD DATA LOCAL INFILE consente di importare un file CSV direttamente in una tabella MySQL. Tuttavia, questa funzionalità viene spesso sfruttata dagli attaccanti per ottenere un accesso non autorizzato ai siti ospitati su server che la accettano.

Al fine di prevenire qualsiasi rischio di sicurezza e proteggere i dati dei clienti, Infomaniak ha disattivato la funzione LOAD DATA LOCAL INFILE. Gli utenti che importano i loro file CSV tramite phpMyAdmin (senza selezionare l'opzione "CSV via LOAD DATA") non sono interessati.

Ecco un metodo alternativo per importare dati in formato CSV in una tabella MySQL. L'esempio seguente mostra come gestire correttamente gli errori durante l'apertura del file CSV e l'inserimento dei dati nel database.

Questo script utilizza mysqli per connettersi al database e query preparate per inserire i dati. Questo garantisce una migliore sicurezza, una compatibilità ottimale con le versioni recenti di PHP e un'integrazione semplice nel tuo progetto, sia in uno script esistente che in un nuovo file situato nella directory /web:

$fileName = "data.csv";

// Connect to MySQL database using mysqli
$link = new mysqli("localhost", "username", "password", "database");

// Check database connection
if ($link->connect_error) {
   die("Connection failed: " . $link->connect_error);
}

// Open the CSV file for reading
if (($handle = fopen($fileName, "r")) !== FALSE) {

   // Read each line of the CSV file
   while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {

       // Prepare the SQL query dynamically
       $query = "INSERT INTO `test` VALUES (" . str_repeat('?,', count($data) - 1) . "?)";
       $stmt = $link->prepare($query);

       // Check if query preparation was successful
       if ($stmt === FALSE) {
           die("Query preparation failed: " . $link->error);
       }

       // Bind parameters (assuming all columns are strings)
       $types = str_repeat('s', count($data));
       $stmt->bind_param($types, ...$data);

       // Execute the query
       if (!$stmt->execute()) {
           die("Query execution failed: " . $stmt->error);
       }

       // Close the statement
       $stmt->close();
   }

   // Close the CSV file
   fclose($handle);

} else {
   echo "Error: unable to open the file.\n";
   exit(1);
}

// Close the database connection
$link->close();
?>

 

Ottenere aiuto

Purtroppo non è possibile indicare esattamente in quale punto del script queste righe di codice devono essere inserite.

Se questo metodo crea problemi (ad esempio in caso di importazione simultanea di più file CSV senza messaggio di errore), potrebbe essere causato dalla struttura delle tabelle o dall'indicizzazione dei campi. In tal caso, contattare il proprio webmaster per la verifica.

Consultare anche la documentazione ufficiale PHP relativa alla funzione fgetcsv().


Questa FAQ è stata utile?

Questa guida spiega quali sono le differenze tra le offerte di hosting web Infomaniak per aiutarti a scegliere la soluzione migliore in base alle tue esigenze informatiche.

 

Se stai cercando di ospitare la tua posta elettronica, consulta questa altra guida.

 

Hosting Web Starter

L'hosting web gratuito

L'hosting web Starter è offerto gratuitamente con ogni dominio registrato presso Infomaniak. Offre 10 Mo di spazio su disco per creare un sito (pagine di base in linguaggio HTML - senza PHP, senza database) anche senza conoscenze particolari grazie allo strumento Pagina di benvenuto.

 

Hosting web condiviso

L'offerta principale per creare i tuoi siti

Questi hosting web sono offerte condivise (i siti web saranno ospitati su server le cui risorse sono condivise con altri clienti). Per garantire l'affidabilità di questi servizi condivisi, i server Infomaniak utilizzano in media solo il 40% della potenza dei CPU e sono dotati di dischi SSD professionali di ultima generazione.

L'hosting web offre 250 Go di spazio su disco minimo e consente di gestire più siti web con più nomi di dominio. Questa offerta include tutte le tecnologie comunemente utilizzate per creare siti professionali: PHP, MySQL, accesso FTP e SSH, certificati SSL e installazione facile di WordPress o CMS comuni, ecc. È anche possibile aggiungere un sito Node.js e/o Site Creator.

Nota che senza alcun tipo di hosting, è anche possibile ottenere ed utilizzare Site Creator “autonomo / standalone”. Consulta questa altra guida.

 

Server Cloud

L'hosting web professionale

Con un Server Cloud, le risorse che ti sono allocate non sono condivise con altri clienti e puoi personalizzare la configurazione hardware e software del tuo server in base alle tue esigenze. Un Server Cloud consente anche di utilizzare componenti che non sono disponibili su hosting web condivisi (Node.js, mongoDB, Sol, FFMPEG, ecc.).

  • Un Server Cloud consente di amministrare facilmente il tuo server tramite la stessa interfaccia di amministrazione degli hosting web - gestisci i siti nello stesso modo.
  • Un VPS consente di gestire in modo completamente autonomo il tuo server con la versione di Windows o la distribuzione Linux di tua scelta (Debian, Ubuntu, openSUSE, ...) - sono necessarie solide competenze tecniche per utilizzare un VPS, incluso VPS Lite.

 

Public Cloud (e Kubernetes Service)

Soluzione IaaS aperta, collaudata e sicura

Per Infomaniak è l'infrastruttura che alimenta my kSuite, SwissTransfer e il Webmail, servizi utilizzati da diversi milioni di utenti. Ma Public Cloud è accessibile a tutti e mette a disposizione le risorse di cui hai bisogno per lo sviluppo dei tuoi progetti.

Grazie alle offerte personalizzate e su misura non avrete alcuna difficoltà a gestire il vostro budget di sviluppo. Nessuna spesa di attivazione. Nessun importo minimo. Disdici in qualsiasi momento. Pagate solo le risorse effettivamente utilizzate con Public Cloud alla fine di ogni mese, lo stesso vale per Kubernetes Service.

 

Jelastic Cloud

Hosting web su misura con le tecnologie di vostra scelta

Jelastic Cloud consente di creare ambienti di sviluppo su misura con le tecnologie di vostra scelta (PHP, Java, Docker, Ruby, ecc.). È un'offerta cloud flessibile:

  • Scalabilità orizzontale e verticale delle risorse.
  • Pagamento in base al consumo effettivo delle risorse.
  • Personalizzazione facile della vostra infrastruttura (ridondanza, IP, SSL, bilanciamento del carico, ecc.).

Questa FAQ è stata utile?

Questa guida spiega come prevenire gli attacchi informatici e come evitare un hacking del sito Web che gestisci.

 

Utenti WordPress: consulta questo articolo dedicato.

 

Il ruolo dell'hosting provider

Il lavoro di Infomaniak consiste nel fornire un hosting di qualità, quindi è fondamentale rispondere estremamente rapidamente agli attacchi di vario tipo di cui qualsiasi attore di Internet può essere oggetto. Infomaniak fa quindi tutto il possibile per prendere il massimo delle precauzioni contro il hacking, in particolare mantenendo aggiornate le diverse versioni delle tecnologie utilizzate.

In caso di pirataggio accertato, se è possibile risalire all'autore e la macchina è stata compromessa a causa di un difetto di sicurezza di competenza di Infomaniak, se l'integrità dei server è in discussione, Infomaniak prende in mano la situazione da sola.

 

Il ruolo del titolare del sito e del webmaster

Se il pirataggio del tuo sito è di tua responsabilità (uno script non aggiornato, una patch di sicurezza non applicata, ecc.) Infomaniak ti contatta per avvertirti di un problema che dovrà essere risolto rapidamente. Alcuni organismi come Saferinternet possono inoltre sospendere il nome di dominio a monte, il che disattiverà il sito ma anche la posta elettronica.

Infomaniak non può contrastare gli exploit relativi a un bug nel tuo codice PHP o altro. Se il pirataggio non viene rilevato, noterai generalmente l'intrusione abbastanza rapidamente grazie a elementi sospetti nelle tue pagine o alla ricezione di numerosi messaggi di errore.

È quindi di tua responsabilità occuparti dell'evoluzione del tuo sito Web nel tempo e non lasciarlo "morire" in un angolo, magari facendo appello a un webmaster di professione.

 

Le raccomandazioni di Infomaniak

  1. Aggiorna regolarmente tutte le tue applicazioni Web (WordPress, Joomla, Drupal, ownCloud, ecc.).
  2. Aggiorna la versione PHP del tuo sito sui server Infomaniak.
  3. Aggiorna il tuo sito migrando verso le nuove offerte quando ti viene proposto.
  4. Aggiungi un sistema di protezione sui tuoi moduli di contatto (captcha, ecc.) e sugli eventuali strumenti di "raccomandazione agli amici" (tell-a-friend...).
  5. Esegui regolarmente un'analisi antivirus dell'hosting.
  6. Monitora lo strumento di rilevamento delle vulnerabilità.
  7. Rimuovi tutto ciò che non hai sviluppato tu stesso e di cui l'autore non ha fornito un aggiornamento/correzione da diversi mesi.
  8. Esegui un backup regolare del tuo sito (consulta questa altra guida se utilizzi WordPress) quando tutto va bene e conservalo in un luogo sicuro (poiché i backup automatici sono conservati solo per pochi giorni e questo a volte non è abbastanza lontano per tornare indietro dopo che hai notato un'intrusione).
  9. Consulta ibarry.ch.

 

Se è apparso un problema...

  1. Modificate le password delle vostre applicazioni Web, dei vostri account FTP e dei vostri database verificando preliminarmente che nessun virus si trovi sul vostro computer.
  2. Ripristinate un backup ma aggiornate immediatamente tutto ciò che può essere aggiornato non appena il ripristino è completato.
  3. Se riscontrate un problema con un software di terze parti, contattate direttamente il suo editore o un Partner e consultate la politica di supporto nonché l'articolo 11.9 delle CGU Infomaniak.

Prendete visione di queste raccomandazioni aggiuntive!


Questa FAQ è stata utile?

Questa guida presenta diversi esempi di utilizzo di Varnish su Server Cloud Infomaniak.

 

Premessa

 

Configurazione di Varnish

Una volta installato, la configurazione di Varnish si basa su regole precise di memorizzazione nella cache e di cancellazione. Assicurati di limitare l'accesso per evitare che entità non autorizzate possano svuotare la tua cache.

Ecco un esempio di file di configurazione che raggruppa i casi d'uso più frequenti:

vcl 4.0;

# Default backend configuration
backend default {
    .host = "127.0.0.80";  # Backend IP address
    .port = "80";           # Backend port
}

# Access Control List (ACL) for purge authorization
acl purge {
    "localhost";            # Local access
    "1.2.3.4";              # Trusted home IP
    "42.42.42.0"/24;        # Trusted company range
    ! "42.42.42.7";         # Specific IP exclusion (e.g., problematic user)
}

# Handle incoming requests
sub vcl_recv {
    # Handle PURGE requests
    if (req.method == "PURGE") {
        # Check if client IP is authorized
        if (!client.ip ~ purge) {
            return (synth(405, "IP not authorized for PURGE requests."));
        }
        return (purge);
    }

    # Custom PURGEALL for image directory
    if (req.method == "PURGEALL" && req.url == "/images") {
        if (!client.ip ~ purge) {
            return (synth(405, "IP not authorized for PURGEALL requests."));
        }
        # Invalidate all image-related objects in cache
        ban("req.url ~ \.(jpg|png|gif|svg)$");
        return (synth(200, "Images purged."));
    }

    # Bypass cache for authorized requests (e.g., admin panels)
    if (req.http.Authorization) {
        return (pass);
    }
}

# Handle backend responses before caching
sub vcl_backend_response {
    # Set TTL for images to 1 day
    if (beresp.http.content-type ~ "image") {
        set beresp.ttl = 1d;
    }

    # Respect backend's "uncacheable" instruction
    if (beresp.http.uncacheable) {
        set beresp.uncacheable = true;
    }
}

 

Cancellazione tramite l'interfaccia CLI

Non appena le tue regole sono attive, puoi testare la cancellazione del tuo sito (es: "domain.xyz") utilizzando lo strumento curl:

# Purge the homepage
$ curl -X PURGE https://domain.xyz/

# Expected Varnish response
<!DOCTYPE html>
<html>
<head>
    <title>200 Purged</title>
</head>
<body>
    <h1>Success 200: Purge completed</h1>
    <p>The page has been successfully purged.</p>
    <h3>Guru Meditation:</h3>
    <p>XID: 2</p>
    <hr>
    <p>Varnish Cache Server</p>
</body>
</html>

Per cancellare un'URL specifica, modifica semplicemente il percorso della richiesta:

# Purge a specific file
$ curl -X PURGE https://domain.xyz/some_path/some_file.html

# Expected Varnish response
<!DOCTYPE html>
<html>
<head>
    <title>200 Purged</title>
</head>
<body>
    <h1>Success 200: Purge completed</h1>
    <p>The file has been successfully purged.</p>
    <h3>Guru Meditation:</h3>
    <p>XID: 4</p>
    <hr>
    <p>Varnish Cache Server</p>
</body>
</html>

Oppure per attivare la cancellazione di gruppo delle immagini definita nel VCL:

# Execute PURGEALL for images
$ curl -X PURGEALL https://domain.xyz/images

# Expected Varnish response
<!DOCTYPE html>
<html>
<head>
    <title>200 Purged images</title>
</head>
<body>
    <h1>Success 200: Images purged</h1>
    <p>All images have been successfully purged.</p>
    <h3>Guru Meditation:</h3>
    <p>XID: 32770</p>
    <hr>
    <p>Varnish Cache Server</p>
</body>
</html>

 

Cancellazione da un CMS (PHP)

La gestione della cache può essere effettuata anche dinamicamente tramite il tuo backend. Nella configurazione precedente, è stato aggiunto un controllo sull'intestazione Uncacheable. Il tuo CMS può inviare questa intestazione per forzare Varnish a non memorizzare una risposta.

Ecco come inviare una richiesta di cancellazione programmata in PHP:

<?php
// Initialize cURL for a specific URL
if ($curl = curl_init("http://127.0.0.1/some_url")) {
    curl_setopt_array($curl, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_CUSTOMREQUEST => "PURGE",
        CURLOPT_HTTPHEADER => [
            "Host: {$_SERVER['HTTP_HOST']}" // Match the target host
        ]
    ]);

    curl_exec($curl);
    
    // Check if the purge was successful (HTTP 200)
    if (curl_getinfo($curl, CURLINFO_HTTP_CODE) == 200) {
        echo "Cache purged!";
    }
    curl_close($curl);
}
?>

Questa FAQ è stata utile?

Questa guida riguarda Jelastic Cloud che permette di creare in un clic dei container preconfigurati per Java, PHP, Ruby, Node.js, Python e Go. Avete anche la possibilità di distribuire qualsiasi container Docker personalizzato nel Cloud.

 

Premessa

  • Nel contesto di Jelastic, un container o nodo fa riferimento a un'unità di isolamento ed esecuzione in cui le vostre applicazioni vengono distribuite ed eseguite, beneficiando delle risorse fornite dal nodo su cui sono posizionate.
  • Questo permette una gestione efficace delle applicazioni e un'ottimizzazione delle risorse in base alle esigenze del vostro progetto.

 

Container

In Jelastic, un container è un ambiente di esecuzione virtuale che isola le vostre applicazioni e le loro dipendenze dal resto del sistema. Può trattarsi di un container Docker o di un altro tipo di container supportato da Jelastic.

Ogni container agisce come un'unità distinta, il che significa che potete eseguire più applicazioni in diversi container senza che interferiscano tra loro.

 

Nodo

Un nodo è un'istanza di server virtuale o fisico su cui uno o più container possono essere distribuiti. In altre parole, un nodo è una macchina virtuale o fisica che fornisce le risorse (come la CPU, la memoria, lo storage, ecc.) necessarie per eseguire le vostre applicazioni.

Jelastic distribuisce automaticamente i container su diversi nodi in base al carico e alle risorse disponibili per garantire prestazioni ottimali e alta disponibilità.


Questa FAQ è stata utile?

Questa guida spiega come reindirizzare un nome di dominio direttamente verso un altro o come inviare automaticamente i visitatori del tuo sito web verso un altro indirizzo di pagina (URL interno o esterno).

 

Premessa

  • Per reindirizzare il traffico, dovrai agire…
    • … oppure sul nome di dominio stesso (deve essere ospitato da Infomaniak e i suoi DNS devono essere quelli di Infomaniak),
    • … oppure sul codice presente nelle tue pagine (pagina .htaccess, pagina iniziale, ecc.) se hai un sito web.

 

Agire sul nome di dominio

tramite Strumento di Reindirizzamento Web

Lo 'strumento disponibile sul Manager consente di agire in modo semplice sul nome di dominio (o sottodominio) per reindirizzarlo all'indirizzo Internet di tua scelta.

tramite modifiche DNS o registrazione A

Modificare i DNS del nome di dominio o modificare i suoi record A/AAAA consente di indirizzare il traffico web verso un altro fornitore.

 

Agire sul codice delle pagine…

… tramite codice HTML da inserire

Inserisci questa riga di codice tra i tag <head> e </head> della tua pagina iniziale (di solito chiamata index.html):

<meta http-equiv="refresh" content="5;url=INSERT-HERE-NEW-URL">

Sostituisci 5 con il tempo di attesa in secondi desiderato (0 per farlo immediatamente).

Il motore di ricerca Google indica che è preferibile utilizzare una reindirizzazione di tipo 301 lato server (leggi sotto). Anche il W3C sconsiglia di utilizzarlo.

… tramite codice PHP da inserire

Se la pagina del sito ha un'estensione .php, inserisci questa chiamata di funzione header in cima al file:

header("refresh: 5; url=INSERT-HERE-NEW-PAGE-URL");

… tramite file .htaccess

Per reindirizzare tutto il traffico diretto al tuo sito (indipendentemente dalla pagina chiamata) verso un altro indirizzo, inserisci questo nel file .htaccess alla radice del tuo sito:

RewriteEngine On
RewriteRule ^(.*)$ INSERT-HERE-NEW-URL/$1 [R=301]

Per mirare la pagina che deve essere reindirizzata:

Redirect permanent /ancienne_page.html insérer ici adresse URL de destination

Redirectpermanent, Redirect permanente e Redirect 301 sono comandi equivalenti.

Ecco un altro esempio di reindirizzamento di una sottoparte alla pagina principale (questa direttiva ha il vantaggio di funzionare con i "deep link" a differenza di un reindirizzamento permanente):

RewriteEngine on
RewriteRule "old/path/url "/" [L]

Consulta questa altra guida sull'argomento.


Questa FAQ è stata utile?

Questa guida spiega come aggiungere indirizzi IP alla lista bianca di un sito Web Infomaniak.

 

Premessa

  • Autorizzare gli indirizzi IP su xmlrpc.php consente di accedere agli URL che sono bloccati per impostazione predefinita, poiché considerati a rischio.
  • Questo tipo di blocco è efficace su tutti i server recenti.
  • Per quanto riguarda WordPress, la sua funzionalità XML-RPC è disponibile per impostazione predefinita solo tramite i servizi Infomaniak e JetPack per motivi di sicurezza.

 

Aggiungere indirizzi IP alla lista bianca di xmlrpc.php

Per accedere alla gestione del sito Web:

  1. Clicca qui per accedere alla gestione del tuo sito sul Manager Infomaniak (hai bisogno di aiuto?).
  2. Clicca direttamente sul nome assegnato al sito interessato:
  3. Clicca su Gestisci i parametri avanzati:
  4. Clicca sulla scheda PHP / Apache:
  5. Completa la riga interessata.
  6. Clicca sul pulsante Salva in fondo alla pagina:

Questa FAQ è stata utile?

Questa guida fornisce suggerimenti per eseguire operazioni relative a un sito WordPress, il che permette, tra l'altro, di…

  • copiare e migrare un sito WordPress da un provider concorrente a Infomaniak,
  • modificare il nome di dominio di un sito WordPress,
  • salvare un sito WordPress interamente…

 

Premessa

  • A seconda del contesto, invece di eseguire un trasferimento WordPress, è possibile semplicemente…

 

Trasferire un sito WordPress…

… con l'estensione All-in-One WP Migration

  • Richiede l'installazione di un nuovo WordPress pulito (ad esempio tramite l'installatore automatico Infomaniak) per importare il vecchio sito.

… con l'estensione Duplicator

  • Richiede di connettersi all'hosting tramite FTP per inviare un archivio .zip e un file PHP per reinstallare il vecchio sito.

Questa FAQ è stata utile?

Questa guida presenta Jelastic Cloud che è il frutto di una stretta collaborazione tra Infomaniak e l'azienda Jelastic (Virtuozzo).

 

Infomaniak

Infomaniak garantisce l'infrastruttura, il supporto, le prestazioni, la sicurezza e l'affidabilità della soluzione. La sua infrastruttura garantisce sempre la disponibilità e la fluidità delle applicazioni, rispondendo ai picchi di traffico e riducendo automaticamente il consumo delle risorse durante i periodi di bassa attività. Questa flessibilità ottimizza il rapporto costi/prestazioni contabilizzando solo le risorse effettivamente utilizzate.

Con questo servizio Cloud, le risorse informatiche si adattano alle fluttuazioni della domanda mantenendo un controllo sul budget. Tutti i dati sono gestiti in Svizzera nei data center di Infomaniak, con un supporto disponibile in cinque lingue.

 

Jelastic

Jelastic garantisce la manutenzione, lo sviluppo software e fornisce la parte software del prodotto.

Fondata nel 2011, Jelastic automatizza la creazione, il ridimensionamento, il clustering e gli aggiornamenti di sicurezza delle applicazioni tradizionali e native nel Cloud. Supporta anche gli ambienti Java, PHP, Ruby, Node.js, Python, .NET, Go, nonché il cluster Docker.


Questa FAQ è stata utile?