cartella e permesso di condivisione di host

2

Ho un sito Web con una società di webhost. Ho scritto una piccola applicazione php / mysql - nessun caricamento di file, solo la gestione dei dati dal DB e la creazione di pdf con TCPDF. Ci sono cartelle come css e js ma nient'altro.

Poiché ho un controllo limitato sull'host condiviso, quale sarebbe la migliore prassi per mantenere i file sicuri ma eseguibili.

Quindi diciamo:

index.php
connect_db.php
page1.php
unctions.php
IMAGES folder
CSS folder
TCPDF folder  
.htaccess
php.ini

Aggiornamento:

il server è un server Linux con PHP5.2 (opzionale 5.3) e ho spazio web illimitato ... La ragione principale che sto chiedendo perché ho avuto un attacco e qualcuno è riuscito a mettere una cartella (nedbank) e qualche modulo email per phish dettagli personali. Ora sto costruendo tutto il sito da zero e vorrei coprire ogni aspetto.

Ho anche interrotto questa domanda per altre domande in modo che le persone potessero usare oltre a risorse di buona pratica.

    
posta Andras Sebestyen 14.09.2011 - 11:25
fonte

1 risposta

8

Ricorda che .php è in esecuzione nello stack di applicazioni PHP sul server. Potrebbe avere accesso a qualcosa di più di un semplice utente che naviga nel sito web.

Questi sono i miei suggerimenti (non un elenco completo) per PHP su Apache con accesso limitato al server. Spero che questo ti consenta di iniziare nella giusta direzione ...

Disattiva le chiamate al database

Quando leggi e scrivi su un database, disinfetti il tuo input soprattutto se stai richiedendo l'input da un utente. Inoltre, fai attenzione a creare istruzioni SQL al volo con l'input fornito dall'utente. Consentire un "o" o un numero qualsiasi di altri caratteri in input potrebbe consentire a un utente di iniettare i propri comandi per dire di interrogare la tabella utente. Se possibile, limita l'input dell'utente a-z, A-Z, 0-9 in quanto è generalmente sicuro.

Ecco le cose buone che dovresti sapere se vuoi scrivere PHP per il tuo sito web.

link

File .htaccess di Apache

Inoltre, puoi applicare alcuni buoni blocchi al tuo file .htaccess per impedire l'uso indesiderato o mancato dei tuoi file del sito web.

link

Dovresti limitare i permessi dei file a .htaccess erano possibili impostando qualcosa come 644 (rw-r - r--). Ma per un ulteriore livello inserisci anche quanto segue nel tuo file .htaccess per la root del tuo sito web.

# Prevent access to .htaccess from web.
<Files .htaccess>
  Order Allow,Deny
  Deny from all
</Files>

Limita permessi

Limita le autorizzazioni a ciò di cui hai veramente bisogno. Ad esempio, se non hai bisogno di eseguire su php.ini, non concederlo (dovrebbe probabilmente essere impostato su 600). Se non sei sicuro, inizia con un basso livello di autorizzazione e fatti strada. Non ci vorrà molto per provare e ti risparmierai il mal di testa quest'ultimo.

Fai anche attenzione con l'esecuzione su file di immagine e file che ovviamente non dovrebbero essere eseguiti. Se qualcuno può utilizzare le immagini incorporate nelle tue pagine per eseguire il codice, lo faranno se le lasci fare.

Se è necessario l'accesso per scrivere una directory come i caricamenti, bloccare l'accesso ai file che non sono richiesti. Ad esempio, se si dispone di una directory di caricamento PDF o immagine, i file .php probabilmente non sarebbero necessari, quindi bloccateli.

<FilesMatch "\.(htaccess|ini|sh|php)$">
  Order Allow,Deny
  Deny from all
</FilesMatch>

Meglio ancora, blocca tutti i tipi di file tranne i file necessari.

Order Allow,Deny
Deny from all

<FilesMatch "\.(jpg|gif)$">
  Order Deny,Allow
  Allow from all
</FilesMatch>

Disabilita esplorazione directory

Se non richiesto disabilitarlo. Dare alle persone l'accesso per vedere quali file si possono dare loro informazioni per attaccare meglio. Puoi disabilitarlo tramite un file .htaccess nella directory specifc o nella root del tuo sito usando qualcosa di simile.

# Disable directory browsing
Options All -Indexes

Script e applicazioni di terze parti

Se usi script di terze parti, include o applicazioni nel tuo sito web assicurati che provengano da una fonte attendibile e tienili aggiornati. Iscriviti alle mailing list se necessario per essere sicuro di sapere quando uscirà un nuovo rilascio. Molti attacchi automatici contro l'applicazione web che utilizzano PHP e altri linguaggi di scripting utilizzano vulnerabilità ben note che sono state precedentemente corrette.

    
risposta data 15.09.2011 - 15:33
fonte

Leggi altre domande sui tag