Quali tipi di exploit devo proteggere in PHP?

5

Recentemente ho appreso che a quanto pare, è comune per le persone tentare le iniezioni SQL usando il referrer HTTP in PHP. Di quali altri input devo proteggere? Attualmente sto "ripulendo" le entrate $ _GET [] e $ _POST [], e ora il referrer del server. Sto anche rimuovendo l'HTML da cose come i nomi degli utenti e, naturalmente, prima di fare qualcosa, rimuovo UTF8 non valido. (Al momento non ho a che fare con UTF7.)

    
posta Frank E 08.01.2013 - 15:53
fonte

2 risposte

5

C'è un gran numero di vulnerabilità e attacchi che influiscono sulla sicurezza della tua applicazione. Puoi iniziare con un elenco dei più comuni e critici e OWASP Top 10 è la risorsa più popolare contenente informazioni dettagliate ed eccellenti cheat sheet per un rapido avvio.

Le vulnerabilità derivano da pratiche di sviluppo non sicure, quindi ecco la Guida rapida di riferimento di OWASP Secure Coding Practition in un formato checklist L'implementazione di queste pratiche mitigherà la maggior parte delle vulnerabilità software comuni.

Le tue domande riguardano la convalida dell'input, che è solo una parte del problema che stai cercando di risolvere. La protezione della tua applicazione web non è una scienza esatta in cui è possibile definire e implementare un elenco completo di tutti i possibili problemi e correzioni.

Tuttavia, la convalida dell'input è uno dei controlli tecnici più efficaci per la sicurezza delle applicazioni. Può mitigare numerose vulnerabilità tra cui lo scripting cross-site, varie forme di iniezione e alcuni buffer overflow.

Variabili utilizzate per acquisire gli utenti forniti in PHP:

  • $_GET
  • $HTTP_GET_VARS
  • $_POST
  • $HTTP_POST_VARS
  • $_COOKIE
  • $HTTP_COOKIE_VARS
  • $_REQUEST
  • $_FILES
  • $HTTP_POST_FILES
  • $_SERVER[‘REQUEST_METHOD’]
  • $_SERVER[‘QUERY_STRING’]
  • $_SERVER[‘REQUEST_URI’]
  • $_SERVER[‘HTTP_ACCEPT’]
  • $_SERVER[‘HTTP_ACCEPT_CHARSET’]
  • $_SERVER[‘HTTP_ACCEPT_ENCODING’]
  • $_SERVER[‘HTTP_ACCEPT_LANGUAGE’]
  • $_SERVER[‘HTTP_CONNECTION’]
  • $_SERVER[‘HTTP_HOST’]
  • $_SERVER[‘HTTP_REFERER’]
  • $_SERVER[‘HTTP_USER_AGENT’]
  • $_SERVER[‘PHP_SELF’]
risposta data 08.01.2013 - 18:36
fonte
0
    1. Innanzitutto è Esecuzione di codice in modalità remota

Questo può essere ovunque nel codice o anche una vulnerabilità php al suo nucleo. L'attaccante può trova una chiamata rpc o tramite globals ed esegui qualsiasi codice sulla tua macchina remota a livello macchina

    1. Cross Site Scripting (XSS)

In questo modo l'autore dell'attacco può inserire il codice javascript sul tuo sito e consentirgli di recuperare i cookie e altre informazioni utili che potrebbero facilmente compromettere il tuo sito. Guarda qui per vedere quanto è comune un attacco.

    1. Altre informazioni

È necessario configurare l'applicazione in modo che quando si verifica un problema non venga fornita alcuna informazione all'attaccante. L'enumerazione del nome utente è tale, il che significa che un servizio di backend fornisce all'utente malintenzionato una risposta vera o falsa come la password non valida o il nome utente non esiste rendendoti vulnerabile agli attacchi di forza bruta

    1. Vulnerabilità DoS

Molte volte la tua applicazione potrebbe fallire a causa di una parte di codice che consente il numero di richieste da parte dell'utente come lui / lei vuole. Altre volte questo è il problema di alcuni codici difettosi che richiedono molto più tempo per l'esecuzione di quanto dovrebbe. Quest'ultima è una vulnerabilità molto comune che la maggior parte delle volte richiede un aggiornamento per funzionare.

Spero che questo aiuti.

    
risposta data 08.01.2013 - 16:14
fonte

Leggi altre domande sui tag