Не могу отключить X-Powered-By: Express

Я пробовал использовать это, но это не сработало: app.disable("x-powered-by"); и я прочитал это сообщение:

как удалить X-Powered-By в ExpressJS

Не могу избавиться от заголовка X-Powered-By: Express

Iam using "express": "^4.16.4" as backend. in frontend iam using "react": "^16.7.0" Single Page App.

ОБНОВИТЬ

express.js в порту 5000 react.js в порт 3000

когда я пытаюсь попасть по этому URL-адресу, http: // локальный: 5000 / api / продуктx-powered-by :express исчезает.

в моем приложении реакции, когда я пытаюсь нажать API http: // локальный: 5000 / api / продукт, он снова покажет x-powered-by:express.

Каждый раз, используя API http: // локальный: 5000 / api / продукт, что означает сервер node.js / express, я получал x-powered-by : express

Не могу отключить X-Powered-By: Express

но когда я пытаюсь использовать console.info(app);, я получаю следующее:

          settings:
[0]       { 'x-powered-by': false,
[0]         etag: 'weak',
[0]         'etag fn': [Function: generateETag],
[0]         env: 'development',
[0]         'query parser': 'extended',
[0]         'query parser fn': [Function: parseExtendedQueryString],
[0]         'subdomain offset': 2,
[0]         'trust proxy': false,
[0]         'trust proxy fn': [Function: trustNone],
[0]         view: [Function: View],
[0]         views: 'D:\\WEBSITE\\hammerstout_nodejs_client\\views',
[0]         'jsonp callback name': 'callback' } }, 

'x-powered-by': false, должно ли это работать?

Код

import express from 'express';
import bodyParser from 'body-parser';
// import passport from 'passport';
import connection from './config/conn';
import { CategoryRoutes,ProductRoutes } from './modules';
import session  from 'express-session';
const app = express();
app.disable("x-powered-by");
console.info(app);
app.use(session({
    secret: 'keyboard cat',
    resave: false,
    saveUninitialized: true,
    cookie: { secure: true }
}))

app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
// app.use(passport.initialize());

app.use('/api/', [CategoryRoutes, ProductRoutes]);


const port = process.env.PORT || 5000;
app.listen(port, (err) => {
    if (err){
        console.info(err);
    }else{
        console.info(`Server running on port ! ${port}`);
    }

});

У меня была такая же проблема с v4.16. *, Но app.disable("x-powered-by");, похоже, теперь снова работает правильно в v4.17.1.

r.vanlaarhoven 07.06.2019 14:33

Если вы думаете, что у вас все заработало, то это не потому, что app.disable ("x-powered-by"); вдруг работает в какой-то версии Express. Это потому, что вы смотрите на свое приложение без прокси. Если вы, например, используете React и его прокси для передачи трафика API, этот прокси добавит заголовок, даже если вы отключили его на своем сервере Express.

Christiaan Westerbeek 18.06.2019 09:04
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
4
2
5 933
2

Ответы 2

app.disable("x-powered-by"); - это правильный способ отключить настраиваемый заголовок в экспресс 4.16.4. Вот рабочий пример с экспресс-версией 4.16.4 и узлом 10.14.2:

const express = require('express');
const app = express();

app.disable("x-powered-by");
app.get('/', function(req, res) {
  res.status(200);
  res.send("hello\n\n");
  res.end();
});
app.listen(9876, function() {
  console.info('ready');
});

запустив это из командной строки, затем вызов curl -i http://localhost:9876/ приведет к следующему выводу:

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 7
ETag: W/"7-RYgBn9PSVn8wOBXbat/kibLuX5I"
Date: Mon, 07 Jan 2019 03:24:09 GMT
Connection: keep-alive

hello

Вероятно, это промежуточный прокси. Отметьте другой ответ

Christiaan Westerbeek 18.06.2019 08:49

У меня такой же эффект с моим угловым приложением. Я использую прокси-сервер angular (который в конечном итоге является webpack-dev-сервером) для доступа к моему серверу (избегая проблем с CORS).

Ответы не содержат заголовок x-powered-by, когда я обращаюсь к REST-API на моем сервере (через порт 3000) с помощью почтальона или браузера. Доступ к тому же серверу с моим приложением angular (на порту 4200) с использованием прокси-сервера показывает заголовок.

Мои выводы таковы: webpack-dev-server использует Express в качестве основы; поэтому я предполагаю, что "ошибочный" заголовок исходит от прокси-сервера, а не от вашего сервера на порту 3000.

Я думаю, вы на месте. По этой причине люди все еще видят заголовок после его отключения.

Christiaan Westerbeek 18.06.2019 08:49

Другие вопросы по теме