{"id":84184,"date":"2020-06-05T19:42:31","date_gmt":"2020-06-05T17:42:31","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/smertnye-grehi-bezopasnosti-sajta-chto-my-uznali-iz-statistiki-skanera-uyazvimostej-za-god"},"modified":"2020-06-05T19:42:31","modified_gmt":"2020-06-05T17:42:31","slug":"smertnye-grehi-bezopasnosti-sajta-chto-my-uznali-iz-statistiki-skanera-uyazvimostej-za-god","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/smertnye-grehi-bezopasnosti-sajta-chto-my-uznali-iz-statistiki-skanera-uyazvimostej-za-god","title":{"rendered":"Peccati capitali della sicurezza del sito: cosa abbiamo appreso dalle statistiche dello scanner di vulnerabilit\u00e0 in un anno","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Circa un anno fa abbiamo lanciato in DataLine <noindex><a rel=\"nofollow\" href=\"https:\/\/www.dtln.ru\/uslugi\/security\/securityscan\">servizio<\/a><\/noindex> per la ricerca e l'analisi delle vulnerabilit\u00e0 nelle applicazioni IT. Alla base del servizio c'\u00e8 una soluzione cloud di Qualys, di cui <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dataline\/blog\/457768\/\">abbiamo gi\u00e0 parlato<\/a><\/noindex>. In un anno di utilizzo della soluzione, abbiamo eseguito 291 scansioni per vari siti e accumulato statistiche sulle vulnerabilit\u00e0 comuni nelle applicazioni web.\u00a0<\/p>\n<p>Nell'articolo qui sotto, mostrer\u00f2 quali siano le falle di sicurezza dei siti che si nascondono dietro diversi livelli di gravit\u00e0. Vediamo quali vulnerabilit\u00e0 il scanner ha trovato particolarmente frequentemente, perch\u00e9 possono insorgere e come proteggersi.\u00a0<\/p>\n<p><img decoding=\"async\" alt=\"Peccati capitali della sicurezza del sito: cosa abbiamo appreso dalle statistiche dello scanner di vulnerabilit\u00e0 in un anno\" src=\"\/wp-content\/uploads\/2020\/06\/3205347a3bcb19c9fd66bbb890f5096d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nQualys classifica tutte le vulnerabilit\u00e0 delle applicazioni web in tre livelli di gravit\u00e0: basso, medio e alto. Se guardiamo alla distribuzione per 'seriet\u00e0', sembra che non sia cos\u00ec male. Ci sono poche vulnerabilit\u00e0 di alto livello, la maggior parte sono non critiche:\u00a0<\/p>\n<p><img decoding=\"async\" alt=\"Peccati capitali della sicurezza del sito: cosa abbiamo appreso dalle statistiche dello scanner di vulnerabilit\u00e0 in un anno\" src=\"\/wp-content\/uploads\/2020\/06\/59ec50a522270db288fb01fb8a41c7c9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMa non critico non significa innocuo. Possono comunque causare danni significativi.\u00a0<\/p>\n<h2>Top delle vulnerabilit\u00e0 'non critiche'<\/h2>\n<p><\/p>\n<ol>\n<li><b>Vulnerabilit\u00e0 legate al contenuto misto.<\/b>\n<p>Lo standard di sicurezza dei siti web prevede il trasferimento di dati tra il cliente e il server tramite il protocollo HTTPS, che supporta la crittografia e protegge le informazioni dall'intercettazione.\u00a0<\/p>\n<p>Alcuni siti utilizzano <i>contenuto misto<\/i>: trasferiscono parte dei dati tramite il protocollo non sicuro HTTP. Spesso si tratta di <i>contenuto passivo<\/i> : informazioni che influenzano solo la visualizzazione del sito: immagini, stili CSS. Ma a volte si trasmette anche <i>contenuto attivo<\/i>: script che gestiscono il comportamento del sito. In questo caso, attraverso un software speciale, si pu\u00f2 analizzare le informazioni in arrivo dal server con contenuto attivo, modificare le risposte in tempo reale e costringere la macchina a comportarsi in modo diverso rispetto a quanto previsto dai suoi creatori.\u00a0<\/p>\n<p>I browser delle versioni pi\u00f9 recenti avvertono gli utenti che i siti con contenuto misto non sono sicuri e bloccano il contenuto. Anche i developer dei siti ricevono avvisi dal browser nella console. Ad esempio, ecco come appare in <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.mozilla.org\/ru\/docs\/Security\/MixedContent\">Firefox<\/a><\/noindex>:\u00a0<\/p>\n<p><img decoding=\"async\" alt=\"Peccati capitali della sicurezza del sito: cosa abbiamo appreso dalle statistiche dello scanner di vulnerabilit\u00e0 in un anno\" src=\"\/wp-content\/uploads\/2020\/06\/e075e43f63ee6a41d41949d63da27006.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>Cosa c'\u00e8 di pericoloso<\/b>: gli hacker utilizzano il protocollo non sicuro per intercettare informazioni sugli utenti, sostituire script e inviare richieste al sito a nome loro. Anche se il visitatore del sito non ha inserito dati, questo non lo protegge da <i>phishing <\/i>: il furto di informazioni riservate con metodi fraudolenti. Ad esempio, attraverso uno script si pu\u00f2 reindirizzare l'utente a un sito non sicuro che si maschera da qualcosa di familiare. In alcuni casi, il sito malevolo pu\u00f2 sembrare anche migliore dell'originale, e l'utente potrebbe facilmente compilare un modulo e fornire informazioni riservate.\u00a0<\/p>\n<p><b>Cosa tenere a mente per gli sviluppatori web<\/b>: Anche se l'amministratore del sito ha installato e configurato un certificato SSL\/TLS, la vulnerabilit\u00e0 pu\u00f2 sorgere a causa del fattore umano. Ad esempio, se su una delle pagine \u00e8 stato inserito un link assoluto anzich\u00e9 relativo con http, e inoltre non sono state configurate le redirezioni da http a https.\u00a0<\/p>\n<p>Scoprire contenuto misto su un sito pu\u00f2 essere fatto mediante il browser: cercando nel codice sorgente della pagina, leggendo le notifiche nella console per sviluppatori. Tuttavia, lo sviluppatore dovr\u00e0 rimanere a lungo a esaminare il codice. Si pu\u00f2 accelerare il processo con strumenti di analisi automatizzati, come ad esempio: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.jitbit.com\/sslcheck\/\">SSL Check<\/a><\/noindex>, il software open source Lighthouse o il software a pagamento Screaming Frog SEO Spider.<\/p>\n<p>Inoltre, la vulnerabilit\u00e0 pu\u00f2 sorgere a causa di problemi con il legacy-code \u2013 codice ereditato. Ad esempio, se alcune pagine vengono generate con un vecchio modello che non tiene conto della transizione dei siti a https.\u00a0\u00a0\u00a0\u00a0\n<\/li>\n<li><b>Cookie senza flag 'HTTPOnly' e 'secure'.<\/b>\n<p>L'attributo 'HTTPOnly' protegge i file cookie dall'elaborazione da parte di script che gli hacker utilizzano per rubare dati degli utenti. Il flag 'secure' non consente la trasmissione di cookie in chiaro. Lo scambio di dati sar\u00e0 autorizzato solo se la trasmissione di cookie avviene tramite il protocollo sicuro HTTPS.\u00a0<\/p>\n<p>Entrambi gli attributi vengono specificati nelle propriet\u00e0 dei cookie:<\/p>\n<pre><code class=\"plaintext\">Set-Cookie: Secure; HttpOnly<\/code><\/pre>\n<p>\n<b>Cosa c'\u00e8 di pericoloso<\/b>: Se lo sviluppatore del sito non ha specificato questi attributi, un hacker potrebbe intercettare informazioni dell'utente dai cookie e utilizzarle. Se i cookie vengono utilizzati per l'autenticazione e l'autorizzazione, potrebbe rubare la sessione dell'utente e compiere azioni sul sito a suo nome.\u00a0<\/p>\n<p><b>Cosa tenere a mente per gli sviluppatori web<\/b>: Di solito, nei framework popolari, questi attributi vengono assegnati automaticamente. Ma controlla comunque la configurazione del server web e imposta il flag: Set-Cookie HttpOnly; Secure. <\/p>\n<p>L'attributo 'HTTPOnly' render\u00e0 i cookie invisibili anche per il tuo JavaScript.\u00a0\u00a0\n<\/li>\n<li><b>Vulnerabilit\u00e0 Basate sul Percorso ('Path-Based Vulnerabilities').<\/b>\n<p>Lo scanner segnala una vulnerabilit\u00e0 se trova un file o una directory del sito accessibile pubblicamente con informazioni potenzialmente riservate. Ad esempio, pu\u00f2 scoprire file di configurazione del sistema o accesso all'intero file system. Questa situazione pu\u00f2 verificarsi se sono impostati in modo errato i diritti di accesso sul sito.<\/p>\n<p><b>Cosa c'\u00e8 di pericoloso<\/b>: Se il file system \u00e8 \"esposto\", un malintenzionato pu\u00f2 accedere all'interfaccia del sistema operativo e cercare cartelle con password, se sono memorizzate in chiaro (non fatelo!). Oppure pu\u00f2 rubare gli hash delle password e provare a indovinare la password, oltre a tentare di elevare i privilegi nel sistema e avanzare nella infrastruttura.\u00a0\u00a0<\/p>\n<p><b>Cosa tenere a mente per gli sviluppatori web<\/b>: Non dimenticate i diritti di accesso e configurate la piattaforma, il server web e l'applicazione web in modo che non sia possibile \"uscire\" dalla directory web.\n<\/li>\n<li><b>Moduli per l'inserimento di dati riservati con la funzione di completamento automatico attivata.<\/b>\n<p>Se un utente compila frequentemente moduli su siti web, il suo browser memorizza queste informazioni grazie alla funzione di completamento automatico.\u00a0<\/p>\n<p>I moduli sui siti possono includere campi con informazioni riservate, come password o numeri di carte di credito. \u00c8 opportuno disattivare la funzione di completamento automatico per tali campi direttamente sul sito.\u00a0<\/p>\n<p><b>Cosa c'\u00e8 di pericoloso<\/b>: Se il browser dell'utente memorizza informazioni riservate, un malintenzionato potrebbe catturarle in seguito, ad esempio, tramite phishing. In sostanza, lo sviluppatore web che ignora questo aspetto espone i propri utenti.\u00a0<\/p>\n<p><b>Cosa tenere a mente per gli sviluppatori web<\/b>: In questo caso abbiamo un classico conflitto: comodit\u00e0 vs sicurezza. Se lo sviluppatore web tiene conto del comfort dell'utente, potrebbe scegliere deliberatamente il completamento automatico. Ad esempio, se \u00e8 importante seguire <noindex><a rel=\"nofollow\" href=\"https:\/\/www.w3.org\/TR\/WCAG21\/\">Web Content Accessibility Guidelines<\/a><\/noindex> \u2013 raccomandazioni per l'accessibilit\u00e0 dei contenuti per utenti con disabilit\u00e0.\u00a0<\/p>\n<p>Per la maggior parte dei browser, \u00e8 possibile disattivare il completamento automatico utilizzando l'attributo autocompete=\"off\", ad esempio:<\/p>\n<pre><code class=\"plaintext\">\u00a0&lt;body&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;form action=&quot;\/it\/form\/submit\/&quot; method=&quot;get&quot; autocomplete=&quot;off&quot; data-trp-original-action=&quot;\/form\/submit&quot;&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type=&quot;text&quot; placeholder=&quot;Nome&quot;&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/div&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type=&quot;text&quot; id=&quot;lname&quot; placeholder=&quot;Cognome&quot; autocomplete=&quot;on&quot;&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/div&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type=&quot;number&quot; placeholder=&quot;Numero di carta di credito&quot;&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/div&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type=&quot;submit&quot;&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;input type=&quot;hidden&quot; name=&quot;trp-form-language&quot; value=&quot;it&quot;\/&gt;&lt;\/form&gt;\n&nbsp;&nbsp;&lt;\/body&gt;<\/code><\/pre>\n<p>\nMa per Chrome non funzioner\u00e0. Questo viene aggirato tramite JavaScript, \u00e8 possibile trovare una soluzione <noindex><a rel=\"nofollow\" href=\"https:\/\/stackoverflow.com\/a\/55045439\">qui<\/a><\/noindex>.\u00a0\n<\/li>\n<li><b>Nella codifica del sito non \u00e8 stato specificato l'intestazione X-Frame-Options.\u00a0<\/b>\n<p>Questa intestazione influenza i tag frame, iframe, embed o object. Pu\u00f2 impedire completamente l'inserimento del proprio sito all'interno di un frame. Per farlo, \u00e8 necessario specificare il valore X-Frame-Options: deny. In alternativa, \u00e8 possibile specificare X-Frame-Options: sameorigin, in tal modo l'inserimento in iframe sar\u00e0 consentito solo sul proprio dominio.<\/p>\n<p><b>Cosa c'\u00e8 di pericoloso<\/b>: L'assenza di tale intestazione pu\u00f2 essere sfruttata su siti dannosi per <i>clickjacking<\/i>. Per tale attacco, un malintenzionato crea un frame trasparente sopra i pulsanti e inganna l'utente. Ad esempio: i truffatori posizionano nel frame pagine di social media sul sito. L'utente pensa di cliccare su un pulsante su questo sito. Invece, il clic viene intercettato e invia la richiesta dell'utente al social network, dove c'\u00e8 una sessione attiva. In questo modo, i malintenzionati possono inviare spam a nome dell'utente o gonfiare i follower e i like.\u00a0<\/p>\n<p>Se non si vieta questa possibilit\u00e0, un malintenzionato potrebbe posizionare un pulsante della propria applicazione su un sito dannoso. Potrebbe essere interessato al proprio programma di affiliazione o ai propri utenti.\u00a0\u00a0<\/p>\n<p><b>Cosa tenere a mente per gli sviluppatori web<\/b>: Una vulnerabilit\u00e0 pu\u00f2 verificarsi se X-Frame-Options con un valore conflittuale viene impostato sul server web o sul bilanciatore di carico. In questo caso, il server e il bilanciatore sovrascriveranno semplicemente l'intestazione, poich\u00e9 hanno una priorit\u00e0 pi\u00f9 alta rispetto al codice della parte backend.\u00a0\u00a0<\/p>\n<p>I valori deny e sameorigin dell'intestazione X-Frame-Options ostacoleranno il funzionamento del webvisor di Yandex. Per consentire l'uso di iframe per il webvisor, \u00e8 necessario scrivere una regola separata nelle impostazioni. Ad esempio, per nginx, si pu\u00f2 configurare in questo modo:<\/p>\n<pre><code class=\"plaintext\">http{\n...\n map $http_referer $frame_options {\n \"~webvisor.com\" \"ALLOW-FROM http:\/\/webvisor.com\";\n default \"SAMEORIGIN\";\n }\n add_header X-Frame-Options $frame_options;\n...\n}\n\n<\/code><\/pre>\n<p>\n<\/li>\n<li><b>Vulnerabilit\u00e0 PRSSI (Path-relative stylesheet import).\u00a0\u00a0<\/b>\n<p>Si tratta di una vulnerabilit\u00e0 nei fogli di stile del sito. Essa si verifica se si utilizzano link relativi per accedere ai file di stile come href=\"\/somefolder\/styles.css\/\". Un malintenzionato potrebbe sfruttare questa situazione trovando un modo per reindirizzare l'utente a una pagina malevola. La pagina sostituir\u00e0 il link relativo nel proprio URL e simuler\u00e0 una richiesta ai fogli di stile. Ci\u00f2 genererebbe una richiesta come badsite.ru\/\u2026\/somefolder\/styles.css\/, che potrebbe compiere azioni dannose sotto le sembianze di uno stile.\u00a0<\/p>\n<p><b>Cosa c'\u00e8 di pericoloso<\/b>: Un truffatore potr\u00e0 approfittare di questa vulnerabilit\u00e0 se trova un'altra falla nella sicurezza. Di conseguenza, \u00e8 possibile rubare dati utente dai cookie o dai token.<\/p>\n<p><b>Cosa tenere a mente per gli sviluppatori web<\/b>: Impostare l'intestazione X-Content-Type-Options: nosniff. In questo modo il browser verificher\u00e0 il tipo di contenuto per gli stili. Se il tipo \u00e8 diverso da text\/css, il browser bloccher\u00e0 la richiesta.\n<\/li>\n<\/ol>\n<p><\/p>\n<h2>Vulnerabilit\u00e0 critiche<\/h2>\n<p><\/p>\n<ol>\n<li><b>La pagina con il campo per la password viene trasmessa dal server attraverso un canale non sicuro (HTML form containing password field(s) is served over HTTP).<\/b>\n<p>La risposta del server attraverso un canale non crittografato \u00e8 vulnerabile ad attacchi di tipo \u00abMan in the middle\u00bb. Un malintenzionato pu\u00f2 intercettare il traffico e insinuarsi tra il client e il server quando la pagina viene inviata dal server al client.\u00a0<\/p>\n<p><b>Cosa c'\u00e8 di pericoloso<\/b>: Un truffatore sar\u00e0 in grado di sostituire la pagina e inviare all'utente un modulo per dati riservati che verranno inviati al server del malintenzionato.\u00a0<\/p>\n<p><b>Cosa tenere a mente per gli sviluppatori web<\/b>: Alcuni siti inviano agli utenti un codice monouso via email\/sms invece della password. In questo caso, la vulnerabilit\u00e0 non \u00e8 cos\u00ec critica, ma il meccanismo complica la vita agli utenti.\n<\/li>\n<li><b>Invio del modulo con login e password attraverso un canale non sicuro (Login Form Is Not Submitted Via HTTPS).<\/b>\n<p>In questo caso, l'utente invia al server un modulo con login e password attraverso un canale non crittografato.<\/p>\n<p><b>Cosa c'\u00e8 di pericoloso<\/b>: A differenza del caso precedente, questa \u00e8 gi\u00e0 una vulnerabilit\u00e0 critica. Intercettare dati riservati \u00e8 pi\u00f9 semplice, poich\u00e9 non \u00e8 necessario scrivere codice per farlo.\u00a0\n<\/li>\n<li><b>Uso di librerie JavaScript con vulnerabilit\u00e0 note.<\/b>\n<p>Durante la scansione, la libreria pi\u00f9 utilizzata \u00e8 diventata jQuery con una vasta gamma di versioni. In ciascuna delle versioni c'\u00e8 almeno una, se non di pi\u00f9, vulnerabilit\u00e0 nota. L'impatto pu\u00f2 variare notevolmente \u2013 dipende dalla natura della vulnerabilit\u00e0.<\/p>\n<p><b>Cosa c'\u00e8 di pericoloso<\/b>: Per le vulnerabilit\u00e0 note ci sono exploit, come ad esempio:<\/p>\n<p><img decoding=\"async\" alt=\"Peccati capitali della sicurezza del sito: cosa abbiamo appreso dalle statistiche dello scanner di vulnerabilit\u00e0 in un anno\" src=\"\/wp-content\/uploads\/2020\/06\/4e9ebec0ae735aafd28f5e6b1a806406.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>Cosa tenere a mente per gli sviluppatori web<\/b>: Ritorna regolarmente al ciclo: ricerca di vulnerabilit\u00e0 note \u2013 rimozione \u2013 verifica. Se utilizzi librerie obsolete intenzionalmente, ad esempio per supportare vecchi browser o per risparmiare budget, cerca di rimuovere la vulnerabilit\u00e0 nota.\u00a0\n<\/li>\n<li><b>Cross-Site Scripting (XSS).\u00a0<\/b><br \/>\nCross-Site Scripting (XSS), o scripting intersito, \u00e8 un attacco a un'applicazione web, in cui viene inserito del codice dannoso nel database. Se Qualys rileva tale vulnerabilit\u00e0, significa che un potenziale malintenzionato pu\u00f2 aver iniettato o gi\u00e0 iniettato il proprio script js nel codice del sito per compiere azioni dannose.<\/p>\n<p><b>XSS memorizzato (Stored XSS)<\/b> \u00e8 pi\u00f9 pericoloso, poich\u00e9 lo script viene iniettato sul server e viene eseguito ogni volta che la pagina compromessa viene aperta nel browser.<\/p>\n<p><b>XSS riflesso (Reflected XSS)<\/b> \u00e8 pi\u00f9 facile da realizzare, poich\u00e9 uno script malevolo pu\u00f2 essere iniettato in una richiesta HTTP. L'applicazione ricever\u00e0 la richiesta HTTP, non controller\u00e0 i dati, li imballer\u00e0 e li invier\u00e0 immediatamente. Se l'attaccante intercetta il traffico e inserisce uno script del tipo <\/p>\n<pre><code class=\"plaintext\">&lt;script&gt;\/*+\u0447\u0442\u043e+\u0442\u043e+\u043f\u043b\u043e\u0445\u043e\u0435+*\/&lt;\/script&gt; <\/code><\/pre>\n<p>\nallora verr\u00e0 inviata una richiesta dannosa a nome del cliente.<\/p>\n<p>Un chiaro esempio di XSS: js-sniffer, che imitano pagine per l'inserimento di CVC, scadenza della carta e cos\u00ec via.\u00a0<\/p>\n<p><b>Cosa tenere a mente per gli sviluppatori web<\/b>: Nel'intestazione Content-Security-Policy usa l'attributo script-src, in modo che il browser del cliente carichi ed esegua solo codice da una fonte fidata. Ad esempio, script-src 'self' inserisce nella lista bianca tutti gli script provenienti solo dal nostro sito.\u00a0<br \/>\nLa migliore pratica consiste nel codice inline: consenti solo javascript inline utilizzando il valore unsafe-inline. Questo valore consente l'uso di js\/css inline, ma non vieta l'inclusione di file js. In combinazione con script-src 'self', vietiamo l'esecuzione di script esterni.<\/p>\n<p>Assicurati di registrare tutto utilizzando report-uri e di monitorare i tentativi di iniezione nel sito.\n<\/li>\n<li><b>SQL injection.<\/b><br \/>\nLa vulnerabilit\u00e0 indica una possibilit\u00e0 di iniezione di codice SQL nel sito, che accede direttamente al database del sito. L'iniezione SQL \u00e8 possibile se i dati dall'utente non vengono escapati: non vengono controllati per correttezza e vengono subito utilizzati nella query. Ad esempio, ci\u00f2 accade se il modulo sul sito non verifica la corrispondenza dell'input al tipo di dati.\u00a0<\/p>\n<p><b>Cosa c'\u00e8 di pericoloso<\/b>: Se un malintenzionato immette una query SQL in tale formulario, potrebbe danneggiare il database o estrarre informazioni riservate.\u00a0<\/p>\n<p><b>Cosa tenere a mente per gli sviluppatori web<\/b>: Non fidarti di ci\u00f2 che arriva dal browser. Devi proteggerti sia dal lato client che dal lato server.\u00a0<\/p>\n<p>Sul lato client, scrivi un controllo dei campi utilizzando JavaScript.\u00a0<\/p>\n<p>Le funzioni integrate nei framework pi\u00f9 popolari aiutano anche ad escapare simboli sospetti sul server. Inoltre, \u00e8 consigliabile utilizzare query parametrizzate con i database sul server.<\/p>\n<p>Identifica dove avviene l'interazione con il database nell'applicazione web.\u00a0<\/p>\n<p>L'interazione si verifica quando otteniamo delle informazioni: richiesta con id (cambio id), creazione nuovo utente, nuovo commento, \u2013 nuove voci nel database. Qui possono sorgere iniezioni SQL. Anche se eliminiamo un record dal database, \u00e8 possibile un'iniezione SQL.\n<\/li>\n<\/ol>\n<p><\/p>\n<h2>Raccomandazioni generali<\/h2>\n<p>\n<b>Non reinventare la ruota: utilizza framework collaudati.<\/b>. In generale, i framework pi\u00f9 popolari sono pi\u00f9 sicuri. Per .NET ci sono ASP.NET MVC e ASP.NET Core, per Python \u2013 Django o Flask, per Ruby \u2013 Ruby on Rails, per PHP \u2013 Symfony, Laravel, Yii, per JavaScript \u2013 Node.JS- Express.js, per Java \u2013 Spring MVC.<\/p>\n<p><b>Rimanere aggiornati con le novit\u00e0 del fornitore e aggiornare regolarmente<\/b>. Le vulnerabilit\u00e0 vengono scoperte, poi viene scritto un exploit, pubblicato in accesso pubblico, e tutto ricomincia da capo. Iscriviti agli aggiornamenti delle versioni stabili dal fornitore del software.<\/p>\n<p><b>Controlla i diritti di accesso<\/b>. Dal lato del server, trattate sempre il vostro codice come se fosse stato scritto dal vostro peggior nemico, che desidera compromettere il vostro sito e alterare l\u2019integrit\u00e0 dei vostri dati. Inoltre, a volte \u00e8 davvero cos\u00ec.<\/p>\n<p><b>Utilizza cloni, ambienti di test, e solo dopo applicalo in produzione<\/b>. Questo aiuter\u00e0 prima di tutto a evitare errori nell'ambiente di produzione: l'ambiente di produzione genera profitti, e un downtime \u00e8 critico. Quando si aggiunge, si corregge o si risolve un problema, \u00e8 importante effettuare queste operazioni in un ambiente di test, verificare la funzionalit\u00e0 e le vulnerabilit\u00e0 identificate, e poi pianificare le operazioni nell'ambiente di produzione.\u00a0<\/p>\n<p><b>Proteggi l'applicazione web tramite <noindex><a rel=\"nofollow\" href=\"https:\/\/www.dtln.ru\/uslugi\/security\/firewall\">Web Application Firewall<\/a><\/noindex> e integra con esso i report del scanner di vulnerabilit\u00e0<\/b>. Ad esempio, in DataLine utilizziamo Qualys e FortiWeb come integrazione dei servizi.<br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dataline\/blog\/505274\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0433\u043e\u0434 \u043d\u0430\u0437\u0430\u0434 \u043c\u044b \u0432 DataLine \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0441\u0435\u0440\u0432\u0438\u0441 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 \u0418\u0422-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445. \u0412 \u043e\u0441\u043d\u043e\u0432\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u2013 \u043e\u0431\u043b\u0430\u0447\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 Qualys, \u043f\u0440\u043e \u0440\u0430\u0431\u043e\u0442\u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u044b \u0443\u0436\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0438. \u0417\u0430 \u0433\u043e\u0434 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u043c\u044b \u043f\u0440\u043e\u0432\u0435\u043b\u0438 291 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u0430\u0439\u0442\u043e\u0432 \u0438 \u043d\u0430\u043a\u043e\u043f\u0438\u043b\u0438 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u043f\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u043c \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u043c \u0432 \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445.\u00a0 \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0438\u0436\u0435 \u044f \u043f\u043e\u043a\u0430\u0436\u0443, \u043a\u0430\u043a\u0438\u0435 \u0438\u043c\u0435\u043d\u043d\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":84185,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-84184","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0433\u043e\u0434 \u043d\u0430\u0437\u0430\u0434 \u043c\u044b \u0432 DataLine \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0441\u0435\u0440\u0432\u0438\u0441 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 \u0418\u0422-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/smertnye-grehi-bezopasnosti-sajta-chto-my-uznali-iz-statistiki-skanera-uyazvimostej-za-god\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0421\u043c\u0435\u0440\u0442\u043d\u044b\u0435 \u0433\u0440\u0435\u0445\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0441\u0430\u0439\u0442\u0430: \u0447\u0442\u043e \u043c\u044b \u0443\u0437\u043d\u0430\u043b\u0438 \u0438\u0437 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u0441\u043a\u0430\u043d\u0435\u0440\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0437\u0430 \u0433\u043e\u0434 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0433\u043e\u0434 \u043d\u0430\u0437\u0430\u0434 \u043c\u044b \u0432 DataLine \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0441\u0435\u0440\u0432\u0438\u0441 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 \u0418\u0422-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/smertnye-grehi-bezopasnosti-sajta-chto-my-uznali-iz-statistiki-skanera-uyazvimostej-za-god\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-06-05T17:42:31+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-06-05T17:42:31+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47 Peccati mortali della sicurezza del sito: cosa abbiamo imparato dalle statistiche dello scanner di vulnerabilit\u00e0 nell'arco di un anno | ProHoster","description":"Circa un anno fa abbiamo lanciato in DataLine un servizio per la ricerca e l'analisi delle vulnerabilit\u00e0 nelle applicazioni IT.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/smertnye-grehi-bezopasnosti-sajta-chto-my-uznali-iz-statistiki-skanera-uyazvimostej-za-god","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0421\u043c\u0435\u0440\u0442\u043d\u044b\u0435 \u0433\u0440\u0435\u0445\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0441\u0430\u0439\u0442\u0430: \u0447\u0442\u043e \u043c\u044b \u0443\u0437\u043d\u0430\u043b\u0438 \u0438\u0437 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438 \u0441\u043a\u0430\u043d\u0435\u0440\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0437\u0430 \u0433\u043e\u0434 | ProHoster","og:description":"\u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0433\u043e\u0434 \u043d\u0430\u0437\u0430\u0434 \u043c\u044b \u0432 DataLine \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0441\u0435\u0440\u0432\u0438\u0441 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432 \u0418\u0422-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445.","og:url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/smertnye-grehi-bezopasnosti-sajta-chto-my-uznali-iz-statistiki-skanera-uyazvimostej-za-god","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-06-05T17:42:31+00:00","article:modified_time":"2020-06-05T17:42:31+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"84184","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 15:03:50","updated":"2022-09-30 12:56:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/84184","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=84184"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/84184\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/84185"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=84184"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=84184"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=84184"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}