Я запускаю сервер на nodejs с выражением. Я не могу избавиться от заголовка:
X-Powered-By:Express
Мне было интересно, есть ли способ избавиться от этого заголовка или мне нужно жить с ним?
Я запускаю сервер на nodejs с выражением. Я не могу избавиться от заголовка:
X-Powered-By:Express
Мне было интересно, есть ли способ избавиться от этого заголовка или мне нужно жить с ним?
В Express >= 3.0.0rc5:
app.disable('x-powered-by');
Вот простое промежуточное программное обеспечение, которое удаляет заголовок в более ранних версиях Express:
app.use(function (req, res, next) {
res.removeHeader("x-powered-by");
next();
});
Просто чтобы ответить на ответ rjack, вы также можете (необязательно) просто изменить (установить) заголовок X-powered-to на нечто более крутое/обычное, как это:
app.use(function (req, res, next) {
res.header("X-powered-by", "Blood, sweat, and tears")
next()
})
Начиная с Express v3.0.0rc5, поддержка отключения заголовка X-Powered-By
встроена:
var express = require('express');
var app = express();
app.disable('x-powered-by');
Из источника (http://expressjs.com/en/api.html#app.set). В Express 4.X просто установите приложение, используя следующую строку:
app.set('x-powered-by', false) // hide x-powered-by header!
Здесь удобное промежуточное программное обеспечение, которое вы можете использовать для замены X-Powered-By:
function customHeaders( req, res, next ){
// Switch off the default 'X-Powered-By: Express' header
app.disable( 'x-powered-by' );
// OR set your own header here
res.setHeader( 'X-Powered-By', 'Awesome App v0.0.1' );
// .. other headers here
next()
}
app.use( customHeaders );
// ... now your code goes here
Настройка X-Powered в этом случае переопределит значение по умолчанию "Экспресс", поэтому вам не нужно обе отключать и устанавливать новое значение.
Возможно, это может быть очевидно для более опытных пользователей Express, но только это сработало для меня:
app.configure(function() {
app.use(function (req, res, next) {
res.removeHeader("X-Powered-By");
next();
});
});
Чтение кода https://github.com/visionmedia/express/blob/master/lib/http.js#L72 заставляет меня думать, что вам придется жить с ним, поскольку он не кажется условным.
Если у вас есть интерфейс nginx/apache, вы все равно можете удалить заголовок с ним (с mod_headers для apache и заголовков - больше для nginx)
Для скрытия, X-Powered Вы можете использовать Node.js Library шлем.
Ссылка Для этого helmet
var helmet = require('helmet');
app.use(helmet.hidePoweredBy());
removeHeader будет работать только в промежуточном программном обеспечении маршрутизации, пример coffeescript
fix_headers = (req, res, next) ->
res.removeHeader 'X-Powered-By'
next()
app.get '/posts', fix_headers, (req, res, next) ->
...