Uruchamiam serwer na nodejs z express. Nie mogę pozbyć się nagłówka:
X-Powered-By:Express
Zastanawiałem się, czy jest sposób, aby pozbyć się tego nagłówka, czy muszę z tym żyć?
javascript
node.js
express
http-headers
webserver
tyronegcarter
źródło
źródło
Odpowiedzi:
W Express> = 3.0.0rc5:
Oto proste oprogramowanie pośredniczące, które usuwa nagłówek we wcześniejszych wersjach Express:
źródło
app.use(app.router);
, aby działał.4.15.2
. Rozwiązanie @harrisunderwork za pomocą rozwiązania załatwiło sprawęapp.set()
.Aby skorzystać z odpowiedzi rjacka, możesz również (opcjonalnie) po prostu zmienić (ustawić) nagłówek X-powered-by na coś znacznie fajniejszego / niestandardowego, takiego jak ten:
źródło
Od wersji Express v3.0.0rc5 obsługa wyłączania
X-Powered-By
nagłówka jest wbudowana:źródło
Ze źródła ( http://expressjs.com/en/api.html#app.set ). W Express 4.X wystarczy ustawić aplikację za pomocą poniższego wiersza;
źródło
Oto przydatne oprogramowanie pośredniczące, do którego możesz wpaść, aby wymienić X-Powered-By:
Ustawienie X-Powered by w tym przypadku spowodowałoby przesłonięcie domyślnego „Express”, więc nie trzeba jednocześnie wyłączać ORAZ ustawiać nowej wartości.
źródło
Może może to być oczywiste dla bardziej doświadczonych użytkowników Express, ale tylko to zadziałało:
źródło
Czasami odpowiedzi u góry nie działają. To jest moja sprawa. Mam Express 4.17.1 i żadna odpowiedź nie działa. Więc wymyśliłem własne rozwiązanie:
źródło
Aby ukryć, X-Powered By możesz użyć hełmu Node .js Library .
Link do tego jest hełmem
źródło
Żadne ze standardowych rozwiązań również mi nie odpowiada. Po długich poszukiwaniach dowiedziałem się, że użyliśmy pliku routingu, w którym uruchomiono nową instancję ekspresową, która została później dodana do pierwszej za pomocą app.use. Tylko dla tras w tym nowym wystąpieniu ekspresowym obecny był nagłówek X-Powered-By.
Uproszczone spojrzenie na problem:
Rozwiązaniem było po prostu utworzenie nowego express.Router zamiast całej instancji.
źródło
Czytanie kodu https://github.com/visionmedia/express/blob/master/lib/http.js#L72 sprawia, że myślę, że będziesz musiał z nim żyć, ponieważ nie wydaje się to być warunkowe.
Jeśli masz nakładkę nginx / apache, nadal możesz usunąć nagłówek za jej pomocą (z mod_headers dla apache i headers-more dla nginx)
źródło
removeHeader będzie działać tylko w oprogramowaniu pośredniczącym tras, przykład skryptu Coffeescript
źródło
Nic z tego nie działało dla mnie, z wyjątkiem tego (musisz dodać kolejny parametr):
Używam Express ^ 4.17
źródło