• Passa alla navigazione primaria
  • Passa al contenuto principale
  • Passa alla barra laterale primaria
  • Passa al piè di pagina

Il blog di HostingVirtuale

Hosting e Registrazione Domini

  • Facebook
  • Instagram
  • LinkedIn
  • Pinterest
  • RSS
  • Twitter
  • YouTube
  • Home
  • CMS
  • Social Media
  • Web Hosting
  • Web Design
  • Web Marketing
  • HostingVirtuale
    • Domini
    • Web Hosting
    • Email e PEC
    • Hosting Reseller
    • Sicurezza
Ti trovi qui: Home / Web Hosting / PHP e sicurezza: accorgimenti di base

PHP e sicurezza: accorgimenti di base

Pubblicato il 30 Ottobre 2014 da Salvatore Capolupo Lascia un commento Contrassegnato con: sicurezza, tutorial

PHP e sicurezza: accorgimenti di base

Un sistema completamente sicuro appare, fin dall’inizio, virtualmente impossibile da realizzare: del resto abbiamo visto come falle tipo ShellShock si sono propagate addirittura per 20 anni senza nessun tipo di segnalazione.

L’accorgimento di sicurezza più importante resta sempre quello legato al bilanciamento tra rischi ed usabilità del sistema: la regola base nella programmazione “keep it simple”, del resto, va a soddisfare un altro importante requisito.

Tale requisito consente la manutenibilità del codice, a fronte di imporre l’introduzione di dati sempre corretti, completi e verificati. Per esempio, di fronte ad un form di registrazione troppo complesso alcuni utenti tendono a trovare scappatoie per aggirarlo o per inserire arbitrariamente comandi non ammessi.

Questi accorgimenti sono del tutto generici e si applicano indistintamente a Joomla!, WordPress e qualsiasi altro CMS/servizio web basato su PHP, sia che venga ospitato su hosting condiviso, VPS, server dedicato o cloud.

Code injection in PHP: la funzione eval()

La sicurezza di un sistema basato su PHP è legata sempre all’anello più debole della catena che lo fa funzionare, ed è per questo che resta fondamentale mantenere il codice semplice e manutenibile, in modo da limitare gli inevitabili bug, soprattutto in prospettiva.

L’uso della funziona eval è uno dei rischi più concreti per la sicurezza di qualsiasi webapp o sito PHP-based e questo perchè permette l’esecuzione di codice arbitrario mediante un qualsiasi entry-point non filtrato che l’attaccante riesce a reperire.

I due principali sono, di fatto, le caselle di testo dei form e a volte anche gli URL dell’applicativo PHP, che possono essere veicolo di code-injection arbitraria, virtualmente molto pericolosa. Tra gli attacchi più importanti e pericolosi da riconoscere ci sono quelli legati al filesystem, ovvero alla possibilità di manipolare file e directory riservate ed a volte addirittura di iniettare malware all’interno del sistema aggirando i controlli.

Una situazione che in genere provoca problemi è dovuto al mancato controllo delle variabili in ingresso: poichè PHP è stato progettato per consentire l’accesso a livello utente al filesystem, il linguaggio è abiltato a leggere, scrivere e modificare qualsiasi file, modificare connessioni, inviare cron-job massivi e così via. Supponiamo di avere due variabili che prelevano il proprio valore da una POST:

  • $username=$_POST[username];
  • $userfile=$_POST[‘filename’];
  • $homedir=”/home/$username”;
  • unlink(“$homedir/$userfile”);

ecco un esempio di cattiva programmazione. Se un utente malintenzionato intuisce la struttura del codice sottostante, potrebbe cancellare file di sistema molto importanti, ad esempio quello delle password.

Come spiegato nella guida ufficiale, il modo più corretto e più sicuro per permettere operazioni del genere è quello di filtrare le variabili in ingresso con opportuni controlli (ad esempio con condizioni if ed espressioni regolari), in modo da assicurarsi che il path da cancellare sia lecito, oltre a loggare le operazioni perché ne possa restare traccia in seguito.

Non ci sono dubbi che il codice si complicherà leggermente, ma è l’unica reale condizione perché si possa parlare di codice PHP più sicuro.

SQL injection, un altro attacco molto diffuso

Uno dei modi più comuni per rubare password dei siti, inoltre, è quello di sfruttare meccanismi di SQL injection ed uno dei canali preferiti in questi casi sono i form di ricerca delle pagine.

Basta anche qui che le variabili in ingresso non siano filtrate adeguatamente dal software perché si possa manipolare arbitrariamente il database o peggio eseguire un dump di password ed username (password che, in molti casi, non vengono neanche criptate e vengono erroneamente memorizzate in chiaro).

Anche in questo caso è necessario verificare che le variabili assumano la forma più adatta all’uso che se ne fa (ad esempio: limitare il numero di caratteri ricercabili, eliminare i tag ed i caratteri non alfabetici), restringendo così le opportunità per un attaccante di violare il sistema.

Articoli correlati:

Siti web e sicurezza: quello che devi sapereSiti web e sicurezza: quello che devi sapere – Prima parte ShellShock il bug della shell bash, nuovo allarme sicurezzaShellShock il bug della shell bash, nuovo allarme sicurezza Siti web e sicurezza seconda parteSiti web e sicurezza: quello che devi sapere – Seconda parte

Interazioni del lettore

Lascia un commento Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Barra laterale primaria

Come diventare Web Designer Professionista

Crea il tuo sito web gratis

Scopri il nostro hosting economico FREEWEB che comprende: dominio, 1 GB di spazio web, posta elettronica, database, certificato SSL e il pannello di controllo in italiano che consente anche l'installazione di WordPress con un click.

Scopri di più!

Web Designer alle prime armi?

Scopri il miglior Hosting Linux per il tuo sito web. Hosting economico LITE comprensivo di tutti i servizi principali:
- dominio
- spazio web da 5 GB SSD
- 5 email da 1 GB
- database MariaDB
- certificato SSL

Scopri di più!
  • POP3, IMAP e SMTP: Come funzionano i protocolli di posta
  • Le nuove funzioni di HVCP: crea il tuo sito web gratis
  • Le nuove funzioni di HVCP: Certificati SSL personali e per sottodomini

Il tuo sito web è al sicuro?

Attiva il Cloud Backup con il 20% di sconto! Grazie al semplice pannello di controllo in italiano puoi salvare nel cloud storage di Amazon tutti i dati del sito web e del database MySQL.

Scopri di più!

Articoli recenti

  • Come promuovere il tuo sito web su Google: La guida completa 26 Maggio 2025
  • Intelligenza Artificiale e CMMS: automazione intelligente per la manutenzione del futuro 20 Maggio 2025
  • Come creare GIF animate gratis in modo semplice 25 Marzo 2025
  • AI Conversazionale: l’importanza di un hosting efficiente 18 Marzo 2025
  • Come creare un canale Telegram: guida completa 14 Marzo 2025

Hosting ottimizzato per CMS

Tutti i pacchetti hosting proposti sono perfettamente compatibili con i migliori CMS: WordPress, Joomla, PrestaShop.
Il pacchetto LITE comprende:
- dominio
- spazio web da 5 GB SSD
- 5 email da 1 GB
- database MariaDB
- certificato SSL

Scopri di più!

Footer

HostingVirtuale

  • Registrazione domini
  • Web Hosting
  • Posta Elettronica Certificata
  • Cloud server
  • Server dedicati
  • Virtual Private Server
  • Hosting reseller
  • Sicurezza siti web
  • Cloud Backup

Tag Cloud

app backup business cloud content marketing domini ecommerce email email marketing facebook freelance google grafica hosting condiviso hosting gratuito hostinterview inbound marketing infografica instagram intelligenza artificiale joomla linkedin malware mobile news pannello clienti pec personal branding pinterest plugin prestashop sconti seo server sicurezza smart working storytelling telegram tools tutorial twitter video marketing vps wordpress youtube

Articoli recenti

  • Come promuovere il tuo sito web su Google: La guida completa
  • Intelligenza Artificiale e CMMS: automazione intelligente per la manutenzione del futuro
  • Come creare GIF animate gratis in modo semplice
  • AI Conversazionale: l’importanza di un hosting efficiente
  • Come creare un canale Telegram: guida completa

© 2025 All Rights Reserved Hosting Virtuale srl Chieti Pescara Roma Partita IVA IT02586030690