답변:
Express> = 3.0.0rc5에서 :
app.disable('x-powered-by');
다음은 이전 버전의 Express에서 헤더를 제거하는 간단한 미들웨어입니다.
app.use(function (req, res, next) {
res.removeHeader("x-powered-by");
next();
});
app.use(app.router);
그것이 작동 하기 전에 그것을 배치해야 했다.
4.15.2
. @harrisunderwork 솔루션을 사용 app.set()
하여 트릭을 수행했습니다.
소스에서 ( 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 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();
});
숨기기, X-Powered By의 경우 Node .js 라이브러리 헬멧을 사용할 수 있습니다 .
그 링크는 헬멧입니다
var helmet = require('helmet');
app.use(helmet.hidePoweredBy());
표준 솔루션 중 어느 것도 나를 위해 일하지 않습니다. 많은 검색을 한 후 새로운 급행 인스턴스가 시작된 경로 파일을 사용했으며 나중에 app.use를 사용하여 첫 번째에 추가했습니다. 이 새로운 급행 인스턴스의 경로에 대해서만 X-Powered-By 헤더가있었습니다.
문제에 대한 간단한 견해 :
const app = express();
app.disable("x-powered-by");
app.get("/ping", (req, res) => res.send("Pong")); // <-- no X-Powered-By header
const moreRoutes = express();
moreRoutes.get("/ping", (req, res) => res.send("Pong")); // <-- X-Powered-By header still present
app.use("/api/v2", moreRoutes);
해결책은 단순히 전체 인스턴스 대신 새로운 Express.Router를 만드는 것입니다.
const moreRoutes = express.Router();
https://github.com/visionmedia/express/blob/master/lib/http.js#L72 코드를 읽으면 조건부처럼 보이지 않기 때문에 함께 살아야한다고 생각합니다.
nginx / apache 프론트 엔드가 있다면 헤더를 제거 할 수 있습니다 (아파치의 경우 mod_headers, nginx의 경우 헤더-더 있음)
removeHeader는 경로 미들웨어, 커피 스크립트 예제에서만 작동합니다.
fix_headers = (req, res, next) ->
res.removeHeader 'X-Powered-By'
next()
app.get '/posts', fix_headers, (req, res, next) ->
...
이것을 제외하고는 아무것도 나에게 도움이되지 않았습니다.
app.use(helmet.hidePoweredBy({ setTo: 'guesswhat' }))
Express ^ 4.17을 사용하고 있습니다