Quali sono i rischi per la sicurezza che consente agli utenti di caricare contenuti sul mio sito?

30

Come web designer (non un esperto di sicurezza) mi chiedo: se permetto agli utenti di caricare contenuti sul mio sito web (video, immagini e file di testo), quali sono i rischi reali coinvolti?

    
posta Edgar 19.11.2010 - 08:47
fonte

5 risposte

26

Ci sono un paio di rischi nel permettere il caricamento dei contenuti sul tuo sito, ma quanto sarà importante per te dipenderà probabilmente da come esattamente il sito che stai progettando funzionerà.

Il primo è il caricamento di malware. Se un utente malintenzionato può caricare malware sul tuo sito e il malware viene scaricato ed eseguito dagli utenti, è probabile che si tratti di un problema. Prevenire questo di solito si basa su una combinazione di restrizioni dei tipi di file che possono essere caricati (un punto da notare è che non dovresti semplicemente fare affidamento sull'estensione del file qui) e utilizzare la scansione del malware sui contenuti caricati. Ovviamente il lato di scansione delle cose fermerà solo le firme conosciute e può essere bypassato abbastanza facilmente.

Il secondo potenziale problema è se possono caricare il contenuto attivo e farlo eseguire dall'applicazione. Ad esempio, se il tuo sito utilizza php, se è possibile caricare uno script php e quindi eseguirlo come parte della tua applicazione, è probabile che sia in grado di assumere il controllo del server o almeno accedere ad altre informazioni esistenti nell'app.

Un approccio che ho visto per risolvere questo problema è quello di garantire che i file caricati non siano posizionati nella web root e che il server web non esegua file da quella posizione.

Un terzo rischio, gli utenti caricano materiale "illegale". Questa può essere una domanda legale complicata da ordinare, ma se consenti ai contenuti generati dagli utenti probabilmente dovrai affrontarli prima o poi. La correzione per questo sembra essere principalmente procedurale. Avere un buon rapporto con la tua società di hosting e ISP e assicurarti di poter rispondere alle richieste di rimozione rapida dei contenuti, se stai ospitando in una giurisdizione che richiede che il contenuto venga rimosso in caso di richiesta (ad esempio, una richiesta DMCA ).

    
risposta data 19.11.2010 - 09:51
fonte
8

Se il tuo server non è ben configurato, potrebbe portare all'esecuzione di codice dannoso nel contesto del tuo server e prendere il controllo dei tuoi file. Un esempio di questo è ben noto PHP backdoor c99shell . Ci sono alcuni consigli per rendere questa funzione più sicura:

  1. Utilizza qualche altro dominio (o sottodominio) per archiviare i file caricati dagli utenti
  2. Assicurati che gli utenti non possano caricare alcun tipo di file che il server eseguirà (controlla il tipo di contenuto o usa strumenti specifici della lingua per leggere il contenuto del file e controlla il tipo di mimo giusto)
  3. Assicurati che i file caricati non abbiano autorizzazioni da eseguire.
  4. Quando si consente ad altri utenti di scaricare il file, a volte è utile forzarlo come allegato utilizzando l'intestazione HTTP Content-Disposition
risposta data 19.11.2010 - 09:51
fonte
1

FileInclude è uno dei peggiori buchi di sicurezza nei siti Web, basti pensare a cosa succederebbe se una shell C99 uplode (che è uno dei peggiori script php che abbia mai visto) sul tuo sito ed eseguirla.

    
risposta data 19.11.2010 - 12:59
fonte
0

Un utente malintenzionato può caricare codici maligni che possono interrompere l'autenticazione o caricare un file .exe. Tali file, se aperti dall'altro utente, possono causare gravi problemi di sicurezza e causare prestazioni del sistema.

    
risposta data 19.01.2015 - 14:03
fonte
0

Dal punto di vista del punto di vista della sicurezza - consentire all'utente di caricare qualsiasi tipo di file eseguibile senza uno screening adeguato è un grosso rischio.Regolo del pollice sarà -

  • Non posizionare il contenuto caricato dall'utente nella posizione accessibile dell'utente sulla directory Web.
  • Non consentire all'utente di caricare i file di configurazione del server. (In alcuni casi, l'utente limiterà il caricamento di file php ma permetterà comunque di caricare .htaccess :))

Ho visto alcuni siti che tentavano di impedire il caricamento di script PHP, pur consentendo felicemente il caricamento e l'esecuzione di SSI.

    
risposta data 19.01.2015 - 14:50
fonte

Leggi altre domande sui tag