L'app web è sicura in una cartella non pubblica?

4

Mi sto chiedendo se è davvero sicuro usare questa struttura della mia applicazione web.

WEBAPP
    Application
        Controllers
        Models
        Views
        ...
    Framework
        ...
        Core
    Public
        ...
        index.php

Se indico una cartella radice del sito web al / public, quindi se qualcuno viene nella mia pagina Web, ad esempio www.mywebsite.com ... accederà alla cartella /public in cui si trova index.php . La mia domanda è: sarà davvero così sicuro non spostare i file core della mia applicazione nella cartella /public ma al livello superiore invece?

Oppure è possibile accedere a webapp/application/ e webapp/framework/ dalle cartelle webapp/public/ da parte di alcuni hacker?

    
posta aspirinemaga 27.04.2014 - 11:37
fonte

3 risposte

3

Normalmente tutti i file * .php (se impostati correttamente) verranno eseguiti e nessuno sarà in grado di scaricare il suo codice sorgente. Quando hai file come db-functions.inc, le persone potrebbero essere in grado di renderlo nei loro browser; che è ciò che non vuoi.

La cosa pratica di avere directory accessibili non pubbliche è che è possibile archiviare i file di backup (dbdump.sql, backup.zip, ....) e non sarà possibile scaricarlo direttamente dal browser.

MA:

Or is it possible to access the webapp/application/ and webapp/framework/ from webapp/public/ folders by some hackers ?

Sfortunatamente sì. Sebbene non sia possibile accedere direttamente alla directory (su un software server Web appropriato, non è possibile semplicemente www.site.com /../ hidden / hiddenfiles.zip ), se il tuo sito web ha vulnerabilità di attraversamento di directory , potrebbe essere possibile accedere a file al di fuori del proprio webroot.

L'igienizzazione degli input è la chiave, l'articolo collegato a wikipedia è in realtà una buona lettura.

    
risposta data 27.04.2014 - 14:40
fonte
2

Se il tuo codice non è vulnerabile all'inclusione file / directory locale e hai configurato correttamente il tuo server, non sarà possibile accedere a / webapp / application o / webapp / framework /

E alla tua domanda: sì, sarebbe una cattiva idea spostare i file core all'interno di / public. Ecco perché i creatori del framework hanno creato la directory pubblica :) Se le directory contengono file di configurazione, è possibile che possano essere letti da un utente malintenzionato. Ma anche se contiene solo file php, è ancora un rischio per la sicurezza. Chiamare direttamente quei file potrebbe avere conseguenze indesiderate, come minimo mi aspetterei che le informazioni di basso livello come i percorsi ecc.

    
risposta data 27.04.2014 - 14:42
fonte
0

Devi configurare il tuo server web in modo che solo il contenuto della directory pubblica sia pubblico. Se il server web è configurato correttamente, nessun altro contenuto sarà accessibile alle richieste HTTP.

    
risposta data 27.04.2014 - 11:57
fonte

Leggi altre domande sui tag