我的第一个基于Node.js的公共网站(使用Express)几个星期前上市。我经常检查服务器日志,有时会有一些奇怪的记录。 以下是一些例子:
- - - [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)"
这些是由express.logger
(记录器:http://www.senchalabs.org/connect/logger.html)以默认格式生成的:
default ':remote-addr - - [:date] ":method :url HTTP/:http-version" :status :res[content-length] ":referrer" ":user-agent"'
仅使用express.urlencoded()
,并且在我的项目中未启用express.cookieParser
和express.session
。
以下是我的问题:
remote-addr
?在node.js + express上获取此信息会非常困难吗?GET http://www.google.com
之类的http请求?我应该如何阻止这类请求呢?非常感谢。
答案 0 :(得分:3)
您的服务器正在为这些请求发回200个响应,因此它们似乎是由您应用中的某些路由处理的(可能是一个全能路由;它总是返回3539字节所以它似乎是同一个处理程序)。在不知道服务器为什么接受这些请求的情况下,很难说它是否安全。
您可以轻松使用curl生成以下请求:
curl --proxy YOURSERVER:THEPORT http://www.google.com
至于远程地址为空:抱歉,不知道:((也许是IPv6? nope,通过IPv6传递的请求似乎记录得很好)