Se encontró una extraña solicitud http en el archivo de registro Node.js Express

Mi primer sitio web público basado en Node.js (con Express) fue público hace un par de semanas. Revisaba rutinariamente el registro del servidor y, a veces, hay algunos registros extraños. Aquí hay unos ejemplos:

- - - [Sat, 19 Oct 2013 08:44:38 GMT] "GET http://www.google.com/ HTTP/1.0" 200 3539 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" 222.205.7.245 - - [Sat, 19 Oct 2013 19:54:57 GMT] "GET http://www.wikipedia.org/ HTTP/1.1" 200 3539 "-" "Mozilla/5.0 (compatible; MSIE 5.01; Win2000)" 223.94.178.192 - - [Sun, 20 Oct 2013 06:04:23 GMT] "GET http://www.sciencedirect.com/ HTTP/1.1" 200 3539 "-" "Mozilla/5.0 (compatible; MSIE 5.01; Win2000)" 

Esos son generados por el express.logger (registrador: http://www.senchalabs.org/connect/logger.html ) en el formato predeterminado:

 default ':remote-addr - - [:date] ":method :url HTTP/:http-version" :status :res[content-length] ":referrer" ":user-agent"' 

Solo se usa express.urlencoded() y express.cookieParser y express.session no están habilitados en mi proyecto.

Aquí están mis preguntas:

  1. ¿Por qué falta remote-addr en el registro? ¿Sería extremadamente difícil obtener esta información en node.js + express?
  2. Parece que alguien intentó usar mi sitio web como proxy. ¿Cómo envió una solicitud http como GET http://www.google.com ? ¿Y cómo debo bloquear este tipo de peticiones?
  3. Según esos registros en el registro del servidor, ¿es suficiente la seguridad de mi servidor web? ¿Debo usar el casco (github.com/evilpacket/helmet) o CSRF (www.senchalabs.org/connect/csrf.html) en mi proyecto?

Muchas gracias.

Su servidor está devolviendo 200 respuestas para esas solicitudes, por lo que parece que son manejadas por alguna ruta en su aplicación (tal vez una ruta que atrapa todo; siempre devuelve 3539 bytes, por lo que parece ser el mismo controlador). Sin saber por qué su servidor acepta esas solicitudes, es difícil decir si es seguro o no.

Puedes usar fácilmente curl para generar solicitudes así:

 curl --proxy YOURSERVER:THEPORT http://www.google.com 

En cuanto a que la dirección remota está vacía: lo siento, no sé 🙁 ( tal vez IPv6? Nope, las solicitudes pasadas a través de IPv6 parecen ser registradas muy bien)