Sviluppo di siti Web - Sicurezza

Proteggere le tue pagine web è importante quanto svilupparle, perché qualsiasi minaccia che possa compromettere la sicurezza può danneggiare la tua reputazione aziendale, danneggiarti finanziariamente (rubando i tuoi depositi online), danneggiare i tuoi clienti che visitano il tuo sito web, ecc.

Secondo gli esperti di sicurezza, suggeriranno di eseguire il controllo di sicurezza del sito Web in base al file OWASP TOP 10, che è un potente documento di consapevolezza per la sicurezza delle applicazioni web. La Top 10 di OWASP rappresenta un ampio consenso su quali siano le falle di sicurezza delle applicazioni web più critiche.

Iniezioni SQL

I difetti di injection, come SQL, OS e LDAP injection, si verificano quando dati non attendibili vengono inviati a un interprete come parte di un comando o di una query. I dati ostili dell'aggressore possono indurre l'interprete a eseguire comandi involontari o ad accedere ai dati senza un'adeguata autorizzazione.

Solution - Per proteggere la tua pagina web da iSQL, devi convalidare gli input e i simboli di filtraggio.

Autenticazione interrotta e gestione delle sessioni

Le funzioni dell'applicazione relative all'autenticazione e alla gestione delle sessioni spesso non sono implementate correttamente, il che consente agli aggressori di compromettere password, chiavi, token di sessione o persino di sfruttare altri difetti di implementazione per assumere l'identità di altri utenti.

Solution - Per proteggere il tuo sito da questo difetto, devi creare cookie e sessioni con tempo di scadenza.

Cross-Site Scripting (XSS)

I difetti di XSS si verificano ogni volta che un'applicazione acquisisce dati non attendibili e li invia a un browser Web senza un'adeguata convalida o escape. XSS consente agli aggressori di eseguire script nel browser della vittima, che può quindi dirottare le sessioni utente, deturpare siti Web o reindirizzare l'utente a siti dannosi.

Solution - La protezione da questo è sulla stessa linea di iSQL.

Riferimento a oggetti diretti non sicuri

Un riferimento diretto a un oggetto si verifica quando uno sviluppatore espone un riferimento a un oggetto di implementazione interna, come un file, una directory o una chiave di database. Senza un controllo di controllo degli accessi o altra protezione, gli aggressori possono manipolare questi riferimenti per accedere a dati non autorizzati.

Solution - È necessario implementare meccanismi di protezione specifici come le password per salvaguardare tali file.

Configurazione errata della sicurezza

Una buona sicurezza richiede una configurazione sicura definita e distribuita per l'applicazione, i framework, il server delle applicazioni, il server Web, il server database e la piattaforma. Le impostazioni sicure dovrebbero essere definite, implementate e mantenute, poiché le impostazioni predefinite sono spesso insicure.

Solution - Il software deve essere aggiornato.

Esposizione a dati sensibili

Molte applicazioni web non proteggono adeguatamente i dati sensibili, come carte di credito, ID fiscali e credenziali di autenticazione. Gli aggressori possono rubare o modificare tali dati scarsamente protetti per condurre frodi con carte di credito, furti di identità o altri crimini.

Solution - I dati sensibili meritano una protezione aggiuntiva come la crittografia a riposo o in transito, nonché precauzioni speciali quando vengono scambiati con il browser.

Controllo dell'accesso a livello di funzione mancante

La maggior parte delle applicazioni Web verifica i diritti di accesso a livello di funzione prima di renderla visibile nell'interfaccia utente. Tuttavia, le applicazioni devono eseguire gli stessi controlli di controllo dell'accesso sul server quando si accede a ciascuna funzione. Se le richieste non vengono verificate, gli aggressori saranno in grado di falsificare le richieste di accesso alla funzionalità senza un'adeguata autorizzazione.

Solution - Dovresti controllare i livelli di autenticazione.

Cross-Site Request Forgery (CSRF)

Un attacco CSRF forza il browser di una vittima connessa a inviare una richiesta HTTP contraffatta, incluso il cookie di sessione della vittima e qualsiasi altra informazione di autenticazione inclusa automaticamente, a un'applicazione web vulnerabile. Ciò consente all'autore dell'attacco di forzare il browser della vittima a generare richieste che l'applicazione vulnerabile ritiene siano richieste legittime della vittima.

Solution - La prevenzione più comunemente utilizzata è allegare alcuni token basati su sfide imprevedibili a ciascuna richiesta proveniente da un sito Web e associarli alla sessione dell'utente.

Utilizzo di componenti con vulnerabilità note

Componenti, come librerie, framework e altri moduli software quasi sempre vengono eseguiti con privilegi completi. Se un componente vulnerabile viene sfruttato, un simile attacco può facilitare una grave perdita di dati o il controllo del server. Le applicazioni che utilizzano componenti con vulnerabilità note possono minare le difese delle applicazioni e consentire una serie di possibili attacchi e impatti.

Solution - Controlla se la versione del componente ha delle vulnerabilità e cerca di evitare o modificare con un'altra versione.

Reindirizzamenti e inoltri non convalidati

Le applicazioni Web spesso reindirizzano e inoltrano gli utenti ad altre pagine e siti Web. Queste applicazioni utilizzano dati non attendibili per determinare le pagine di destinazione. Senza un'adeguata convalida, gli aggressori possono reindirizzare le vittime a siti di phishing o malware o utilizzare i forward per accedere a pagine non autorizzate.

Solution - Convalida sempre un URL.

Protocolli utilizzati sicuri

Questo è il caso in cui hai un piano VPS e gestisci tutto da solo. Quando i servizi vengono installati, utilizzano le porte predefinite. Questo rende il lavoro più facile per un hacker perché sa dove guardare.

Di seguito sono riportate alcune delle principali porte di servizio utilizzate nell'hosting di siti Web:

  • SSH - porta 22
  • FTP - porta 21
  • MySQL - porta 3306
  • DNS - porta 53
  • SMTP - porta 25

La modifica della porta di questi servizi varia a seconda del sistema operativo e delle sue diverse versioni. Oltre a questo, devi installare un firewall. Se è un sistema operativo Linux, lo consigliamoIPtablese blocca tutte le altre porte non necessarie. Nel caso in cui il tuo sistema operativo sia Windows, puoi utilizzare il firewall incorporato.

Per bloccare gli accessi di forza bruta nei tuoi servizi, puoi usare Fail2ban, che è un software basato su Linux e blocca tutti gli indirizzi IP facendo molti tentativi di accesso falliti.