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-by 헤더를 다음과 같이 훨씬 더 시원하고 사용자 정의 할 수 있습니다 (선택 사항).
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 by를 설정하면 기본 ‘Express’가 무시되므로 새 값을 비활성화하거나 설정할 필요가 없습니다.
답변
어쩌면 이것은 더 노련한 Express 사용자에게는 분명 할 수 있지만 이것이 나에게 효과적이었습니다.
app.configure(function() {
app.use(function (req, res, next) {
res.removeHeader("X-Powered-By");
next();
});
});
답변
때때로 상단의 답변이 작동하지 않습니다. 이것은 나의 경우이다. Express 4.17.1이 있는데 응답이 없습니다. 그래서 나는 내 자신의 해결책을 발명했다.
let app = express();
app.use((req, res, next) => {
const send = res.send;
res.send = (data) => {
res.removeHeader('X-Powered-By');
return send.call(res, data);
};
next();
});