당신이 부두 8의 서버 버전을 숨기는 방법이가있는 HTTP 서버 헤더를 제거? 이제는 이렇게 보일 것입니다.는 부두 9
HttpConfiguration config = new HttpConfiguration();
config.setSendServerVersion(false);
//TODO: Associate config with server???
Server server = new Server(port);
당신이 부두 8의 서버 버전을 숨기는 방법이가있는 HTTP 서버 헤더를 제거? 이제는 이렇게 보일 것입니다.는 부두 9
HttpConfiguration config = new HttpConfiguration();
config.setSendServerVersion(false);
//TODO: Associate config with server???
Server server = new Server(port);
는 경우 작동하는 것 같다 몇 가지 코드를했다. 확실하지 오른쪽,하지만 적어도 그것은 작동하는 경우 (:
HttpConfiguration httpConfig = new HttpConfiguration();
httpConfig.setSendServerVersion(false);
HttpConnectionFactory httpFactory = new HttpConnectionFactory(httpConfig);
ServerConnector httpConnector = new ServerConnector(server,httpFactory);
server.setConnectors(new Connector[] { httpConnector });
이제는 해당 설정이있는 HttpConfiguration 개체가 있습니다.
org.eclipse.jetty.server.HttpConfiguration
어떻게 구성 보여주는 설정하는 방법 객체를 다음 부두-http.xml 파일을 보여주는 HTTP 구성 섹션의 섹션에 대한 jetty.xml의에 봐 사용. 부두 xml 파일은 실제로 자바보다 얇은 스킨이며 기본적으로 동일합니다.
, 당신이 HttpConfiguration에 구성해야 문제로 응답 헤더.
영업 이익은 내장에 대한 솔루션을 찾고있었습니다,하지만 부두 배포가 server.ini 파일을 사용하는 경우, 당신은 단순히 = jetty.send.server.version 거짓 설정할 수 있습니다
마지막 단계 인'server.setConnectors (새로운 Connector [] {httpConnector});'를 추가하십시오. –
새 커넥터에 대한 포트를 설정하는 중요한 비트는 다음과 같습니다 :'httpConnector.setPort (port);'. 기본 커넥터가 대체되기 때문에'Server' 생성자에 전달 된 포트는 사용되지 않습니다. – Ben
일부 보안 분석 소프트웨어가 플래그에 서버 버전을 전송합니다
는 부두 9Server server = new Server(port);
for(Connector y : server.getConnectors()) {
for(ConnectionFactory x : y.getConnectionFactories()) {
if(x instanceof HttpConnectionFactory) {
((HttpConnectionFactory)x).getHttpConfiguration().setSendServerVersion(false);
}
}
}
jetty9를 독립형 서버로 사용하는 경우 start.ini
파일에 jetty.httpConfig.sendServerVersion=false
을 설정하여 서버 서명을 비활성화 할 수 있습니다.
(나를 위해 일한) 야곱의 솔루션의 람다 스타일의 변형 : jetty9.2
에
final Server server = new Server(port);
Stream.of(server.getConnectors()).flatMap(connector -> connector.getConnectionFactories().stream())
.filter(connFactory -> connFactory instanceof HttpConnectionFactory)
.forEach(httpConnFactory -> ((HttpConnectionFactory)httpConnFactory).getHttpConfiguration().setSendServerVersion(false));
, 내가 서버 버전을 전송하지 않도록 알고 start.ini
# should jetty send the server version header?
jetty.send.server.version=true
에
false
이 설정을 변경할 수 있습니다하지 이상적이지만, 지금 당장은 피할 수없는 구체적인 시나리오가 있습니다. – Jacob왜 서버 버전을 보내지 않는 것이 이상하지 않습니까? 어쨌든 클라이언트가 사용해야하는 것은 아니며 보안과 관련이있을 수 있습니다. 제 생각에는 기본적으로 비활성화되어 있어야합니다. 그렇지 않으면 뭔가 빠졌습니까? –
서버 헤더가 명확하게 사용되며 검색 순위에 영향을 줄 수 있으며 특정 유형의 사람들이 기술 결정을 내리기 위해 자주 사용하는 기술/브라우저 인기도 그래프를 작성하는 데 사용됩니다. – Jacob