X-Powered-By:Express
Expressで作ったサイトを動かすとレスポンスヘッダに
X-Powered-By:Express
こんなのつきます。
俺のサイトはNodeだぜ フフンみたいな人はいいんですがいつか脆弱性がみつかったときにしめしめって思われるのもなんだか怖いので消すようにしました。
Express3系ならこんな感じで簡単に消せます。
var app = express(); app.disable('x-powered-by');
Express2系の人はres.removeHeaderを使えばシンプルに消せます。
こんなミドルウェア作ってルーティングミドルウェアの呼出し前に差し込みすればいい感じかと。
app.use(function (req, res, next) { res.removeHeader("x-powered-by"); next(); });
ちなみにこれが実装されてるところはこの辺(express3.2)
https://github.com/visionmedia/express/blob/3.2.0/lib/application.js#L48
app.defaultConfiguration = function(){ // default settings this.enable('x-powered-by'); // <-初期値設定 this.set('env', process.env.NODE_ENV || 'development'); this.set('subdomain offset', 2); debug('booting in %s mode', this.get('env')); // implicit middleware this.use(connect.query()); this.use(middleware.init(this)); // <- ここで実設定 ...
https://github.com/visionmedia/express/blob/3.2.0/lib/middleware.js#L21
exports.init = function(app){ return function expressInit(req, res, next){ req.app = res.app = app; if (app.enabled('x-powered-by')) { res.setHeader('X-Powered-By', 'Express'); // <-ここ } req.res = res; res.req = req; req.next = next; req.__proto__ = app.request; res.__proto__ = app.response; res.locals = res.locals || utils.locals(res); next(); } };
こんな感じで書かれてるのでapp.disabledでやればきえるってすぐわかってよいですね。