Ricerca nel sito web

Come migliorare la sicurezza del sito e-commerce Magento


Magento è una piattaforma software di e-commerce utilizzata da piccole imprese e marchi leader e la sua edizione comunitaria è un programma open source disponibile gratuitamente. Grazie all'enorme raccolta di plugin e temi sviluppati da terze parti che estendono le funzionalità e il design predefiniti, Magento si sta evolvendo nel WordPress del settore dell'e-commerce.

Tuttavia, la crescente popolarità di Magento offre agli hacker una ragione sufficiente per prendere di mira questa piattaforma di e-commerce. Soprattutto quando gestisci un e-shop utilizzando Magento, hai a che fare con informazioni potenzialmente importanti e sensibili sui tuoi clienti, che sono merce incredibilmente preziosa per gli hacker. Pertanto è imperativo eseguire un'accurata due diligence e seguire le migliori pratiche per proteggere ogni parte della distribuzione di Magento.

In questo tutorial tratteremo le best practice per la sicurezza di Magento e dimostreremo alcuni esempi su come proteggere il tuo sito web Magento.

1. Scegli una password complessa e sicura per l'account amministratore di Magento

Il primo passo più ovvio per mantenere la tua installazione di Magento sicura e protetta è avere una password complessa per il tuo account amministratore di Magento. Assicurati che la password dell'amministratore contenga almeno dieci caratteri casuali e includa numeri, lettere maiuscole e minuscole e caratteri speciali (ad esempio, "q&t:A;-Q&4'?>#6"). Elimina tutti gli altri account che non stai utilizzando. Meno account hai, meno opportunità avranno gli hacker.

2. Usa una connessione crittografata (SSL/HTTPS) per tutte le pagine web di Magento

SSL è un protocollo sicuro che crittografa le informazioni sensibili, come le credenziali di accesso, le informazioni personali ecc. inviate dal browser web al server web. Per implementare SSL sul tuo sito Web Magento, ottieni prima un certificato SSL (ad esempio, da Let's Encrypt). Con il certificato ottenuto, configura il server web per l'ascolto sulla porta 443 e abilita SSL attraverso il back-end di amministrazione di Magento.

Ad esempio, se usi Apache su un server basato su Debian, crea un nuovo host virtuale:


# vi /etc/apache2/sites-available/your-domain.com-ssl.conf

Aggiungi le seguenti righe ad esso:


<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName your-domain.com
    DocumentRoot /var/www/html/magento/
    SSLEngine on 
    #Specify the path to your SSL certificate file:
    SSLCertificateFile /etc/apache2/ssl/your-domain.crt
    #Specify the path to private key file:
    SSLCertificateKeyFile /etc/apache2/ssl/your-domain.key
    #Specify the path to CA certificate:
    SSLCACertificateFile /etc/apache2/ssl/ca-bundle.crt
    <Directory /var/www/html/magento>
        Options -Indexes +FollowSymLinks +MultiViews
        Order allow,deny
        AllowOverride All
    </Directory>
    ErrorLog /var/log/apache2/ssl_error.log
    CustomLog /var/log/apache2/ssl_access.log combined
</VirtualHost>
</IfModule>

Abilita il modulo Apache mod_ssl:


# a2enmod ssl

Disabilita l'host virtuale SSL predefinito e abilita l'host virtuale your-domain.com-ssl.conf:


# a2dissite default-ssl 
# a2ensite your-domain.com-ssl.conf

Infine riavvia Apache per rendere effettive le modifiche:


# /etc/init.d/apache2 restart

Accedi al back-end di amministrazione di Magento, quindi vai su Sistema >> Configurazione. Dal menu a sinistra, sotto l'elenco di selezione Generale, fai clic su Web. Nella scheda Secure cambia http in https e imposta "Usa URL sicuri in Frontend" e "Usa URL sicuri in Admin" su . Non dimenticare di cancellare la cache di Magento e la cache del tuo browser web, quindi prova ad accedere al tuo sito web con https.

Se alcuni dei tuoi visitatori hanno aggiunto il tuo sito web ai segnalibri utilizzando http://your-domain.com e vuoi assicurarti che tutte le richieste a http vengano reindirizzate a https, puoi aggiungere le seguenti righe al file .htaccess che si trova nella root dei documenti del tuo sito web Magento (ad es. /var/www/html/magento/.htaccess):


RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://your-domain.com/$1 [R=301,L]

3. Creare un percorso personalizzato per il back-end dell'amministratore

L'URL di amministrazione predefinito per Magento (ad esempio, yourstore.com/store/admin) può diventare un facile bersaglio per gli hacker che cercano di entrare nel backend di Magento usando attacchi di forza bruta. Per evitare ciò, puoi personalizzare il percorso di amministrazione predefinito come segue.

Accedi al tuo server tramite SSH come root. Quindi apri il file local.xml che si trova nella directory /app/etc della tua installazione di Magento (ad es. /var/www/html/magento/app/etc/local.xml) e individua la seguente riga:


<![CDATA[admin]]>

Sostituisci admin con qualcosa di più complesso, come MyMagento123 o qualunque cosa tu voglia che sia l'URL del back-end dell'amministratore. Questo cambierà l'URL dell'amministratore in yourstore.com/store/MyMagento123.

4. Inserisci nella whitelist solo gli indirizzi IP approvati per l'accesso amministrativo

Oltre a nascondere l'URL dell'amministratore come sopra, puoi limitare l'accesso all'URL dell'amministratore a livello di rete. In altre parole, limita l'accesso dell'amministratore solo a pochi indirizzi IP o blocchi CIDR che hai esplicitamente approvato. Per configurare una whitelist IP per Apache, aggiungi la seguente direttiva LocationMatch all'interno della configurazione del tuo host virtuale. Nota che MyMagento123 è la pagina di accesso amministratore personalizzata che hai definito in precedenza.


<LocationMatch "MyMagento123">
Order Deny,Allow 
Deny from All 
Allow from 111.111.111.0/24
</LocationMatch>

Non dimenticare di riavviare Apache dopo aver aggiornato la whitelist. Ora sarai in grado di accedere alla pagina di accesso amministratore personalizzata (yourstore.com/store/MyMagento123) solo dal blocco di indirizzi IP specificato.

5. Rafforza i permessi dei file del tuo sito web Magento

Seguendo il principio del privilegio minimo, assicurati che i file e le directory del sito Web Magento non siano scrivibili da nessun altro tranne il server web. Per questo, l'utente del server web (www-data su Debian, o apache su CentOS) deve avere accesso ai file e alle directory del sito Web Magento nella root dei documenti del sito Web Magento, quindi esegui il seguente comando per farlo (su Debian):


# chown www-data:www-data -R /var/www/html/magento

Imposta "chmod 750" sulle directory e 640 su tutti i file del sito web, ad eccezione delle directory app/etc, media e var, che richiedono permessi 770 (i permessi 770 danno il controllo completo al proprietario e al gruppo e nessun permesso a nessun altro):


# find /var/www/html/magento -type f -print0 | xargs -r0 chmod 640
# find /var/www/html/magento -type d -print0 | xargs -r0 chmod 750
# chmod -R g+w /var/www/html/magento/{app/etc,media,var}

6. Utilizzare l'autenticazione a due fattori per l'accesso amministratore

Non esiste una pallottola d'argento per quanto riguarda la sicurezza. A tale proposito, un ulteriore livello di protezione che puoi aggiungere all'accesso amministratore è l'autenticazione a due fattori. Con l'estensione dell'autenticazione a due fattori abilitata, ti verrà richiesto di presentare un codice di sicurezza una tantum per ottenere l'accesso al backend di Magento. Il codice di sicurezza monouso viene generato dall'app Google Authenticator installata sullo smartphone che un hacker malintenzionato non possiederebbe.

7. Usa le estensioni Magento solo da fonti attendibili

La sicurezza di qualsiasi sistema software è tanto forte quanto il suo anello più debole. Sebbene l'enorme ecosistema di estensioni Magento di terze parti sia certamente un vantaggio per gli utenti Magento, ognuna di queste estensioni potrebbe potenzialmente introdurre un nuovo vettore di attacco. Anche con tutte le altre protezioni di sicurezza in atto, basta una singola vulnerabilità di un'estensione scritta male per abbattere il tuo sistema Magento. Prima di integrare qualsiasi estensione di terze parti nel tuo negozio Magento, fai sempre la dovuta diligenza controllando la reputazione dello sviluppatore e le recensioni dei clienti da comunità indipendenti come la comunità Magento. Utilizza solo quelle estensioni provenienti da fonti attendibili con un buon track record e quelle che vengono regolarmente aggiornate e mantenute.

8. Aggiorna regolarmente Magento

Mantieni aggiornata l'installazione di Magento, comprese tutte le estensioni e i temi, aggiornando ogni volta che esce una nuova patch o versione di sicurezza. È una buona idea creare un backup dei file del tuo sito Web Magento e del suo database prima di iniziare ad aggiornare Magento.

Per scoprire quale versione di Magento è attualmente installata sul tuo sito Web, accedi al tuo server tramite SSH come root, vai alla directory root dei documenti del tuo sito Web basato su Magento (ad es. /var/www/html/magento) ed esegui i seguenti comandi:


# cd /var/www/html/magento
# php -r "include 'app/Mage.php'; echo 'Your Magento version is: ', Mage::getVersion(); " ; echo "";

Conclusione

In questo tutorial, discutiamo delle migliori pratiche di sicurezza per i siti Web di e-commerce basati su Magento. Seguendo queste linee guida, migliorerai sostanzialmente la sicurezza del tuo sito web Magento. Esistono altre tecniche che puoi utilizzare al di fuori della configurazione di Magento per migliorare la sicurezza generale del tuo sito web, come bloccare gli indirizzi IP indesiderati o installare un IDS, quindi assicurati di fare tutto il possibile. In generale, è meglio ospitare un e-shop su un VPS o un server dedicato piuttosto che su un hosting condiviso. Avrai prestazioni migliori e avrai più controllo sul tuo host se utilizzi un VPS o un hosting dedicato. Qualunque cosa tu faccia, fai attenzione quando configuri il tuo Magento. Ricorda che un piccolo errore può interrompere l'intera installazione di Magento.

Articoli correlati: