2011-12-15 17 views
5

Ho letto un certo codice di WordPress PHP su GitHub e ho trovato che l'autore (uno sviluppatore senior WordPress) stava mettendo questa riga di codice all'inizio di ogni file:Proteggere file PHP da un accesso diretto

defined('ABSPATH') or die("Cannot access pages directly."); 

In che modo protegge il file dall'accesso diretto? Un hacker non può semplicemente definire la costante ABSPATH e quindi caricare il file?

Inoltre, perché l'accesso diretto è pericoloso?

risposta

7

Questa costante è probabilmente impostata nel file PHP WordPress principale, quindi se non è impostata, non si accede alla pagina principale.

Constants non sono qualcosa che un utente può modificare, sono nel codice e possono essere modificati solo modificando il file PHP. Quindi, se un hacker potesse impostare questa costante, allora avresti problemi più grandi, perché ciò implicherebbe la sua effettiva modifica dei tuoi file PHP.

L'accesso diretto potrebbe non essere pericoloso (non citarlo), ma è inutile. L'accesso diretto a un plug-in WordPress (ad esempio) non farà nulla, poiché il plug-in deve essere eseguito tramite WordPress.

0

Normalmente non è possibile dichiarare variabili sul lato servizio in modo che siano sicure.

Molto probabilmente un altra pagina impostare tale variabile da parte di alcuni criteri, (supera la verifica, ip o tutto quello che vuoi)

Come detto quella pagina sola non funzionerà, perché ha bisogno di leggere quella variabile da someware (un includere o la pagina è inclusa)

0

L'accesso diretto può essere pericoloso, poiché l'hacker può elaborare la logica di business e possibilmente trovare il modo per aggirarlo (ovvero cose che non sono scritte nel codice per proteggersi).

Un'altra possibilità è che le cose sono codificati nel programma che può provocare l'accesso diretto alle banche dati, acquisire conoscenze di rete, ecc ...

1
defined('ABSPATH') or die("Cannot access pages directly."); 

questa costante è definito nelle file di root come index.php.
è per verificare se ABSPATH è definito in modo che questo file sia incluso con root o altro file.
e non accesso diretto con URL.
in questo modo è uno dei modi migliori per proteggere i file dall'accesso diretto

Problemi correlati