우리는 서버 토큰을 꺼야한다는 반란 보고서에서 피드백을 받았습니다. 이것은 사람들이 우리가 사용하는 PHP 버전을 볼 수 없게하고 특정 PHP 버전을 대상으로하는 기능을 제한합니다.
http 블록 아래에서 nginx.conf에 다음을 추가했습니다.
server_tokens off;
그러나이 변경 사항을 확인하기 위해 어떤 도구를 사용할 수 있습니까?
우리는 서버 토큰을 꺼야한다는 반란 보고서에서 피드백을 받았습니다. 이것은 사람들이 우리가 사용하는 PHP 버전을 볼 수 없게하고 특정 PHP 버전을 대상으로하는 기능을 제한합니다.
http 블록 아래에서 nginx.conf에 다음을 추가했습니다.
server_tokens off;
그러나이 변경 사항을 확인하기 위해 어떤 도구를 사용할 수 있습니까?
답변:
로부터 수동 당신은 설정이 무엇을 알고 :
구문 :
server_tokens on | off
;
기본값 :server_tokens on
;
컨텍스트 : http, 서버, 위치오류 메시지 및 "서버"응답 헤더 필드에서 nginx 버전 방출을 활성화 또는 비활성화합니다.
옵션은 다음과 같습니다.
nginx/1.2.3
더 이상 버전 정보가 표시되지 않습니다 .HTTP 응답 헤더를 확인하는 간단한 점검은 다음과 같이 수동으로 연결 telnet www.example.com 80
하는 것입니다.
클라이언트 : HEAD / HTTP / 1.1
클라이언트 : 호스트 : www.example.com서버 : HTTP / 1.1 200 OK
서버 : 날짜 : 1970 년 1 월 1 일 1 일 22:13:05 GMT
서버 : 서버 : Nginx / 1.2.3
서버 : 연결 :
서버 닫기 : 내용 유형 : text / html
좀 더 인터넷 검색을 한 후 curl 명령으로 서버 토큰과 PHP 버전을 모두 보여주는 서버 헤더를 확인할 수 있습니다.
curl -I -L www.example.com
PHP에 필요한 변경 사항을 지적한 Alexey에게 감사합니다.
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Thu, 04 Jun 2015 10:49:35 GMT
Content-Type: text/html
Content-Length: 178
Connection: keep-alive
Location: https://www.example.com
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 04 Jun 2015 10:49:36 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified: Thu, 04 Jun 2015 10:49:35 GMT
Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0
ETag: "1433414975"
Content-Language: en
"규정 준수, 보안 및 기타 정책 요구 사항을 자동화 된 테스트로 전환 할 수있는 도구 인 InSpec을 살펴보십시오."
Nginx 서버에 필요한 모든 구성 테스트를 수행 할 수 있습니다. conf 파일의 존재와 값을 테스트하는 한 가지 방법이 있습니다 server_tokens
.
conf_path = '/etc/nginx/nginx.conf'
control 'Server tokens should be off' do
describe file(conf_path) do
it 'The config file should exist and be a file.' do
expect(subject).to(exist)
expect(subject).to(be_file)
end
end
if (File.exist?(conf_path))
Array(nginx_conf(conf_path).params['http']).each do |http|
describe "http:" do
it 'server_tokens should be off if found in the http context.' do
Array(http["server_tokens"]).each do |tokens|
expect(tokens).to(cmp 'off')
end
end
end
end
end
end
올바르게 설정되면 InSpec은 다음을 반환합니다.
✔ Server tokens should be off: File /etc/nginx/nginx.conf
✔ File /etc/nginx/nginx.conf The config file should exist and be a file.
✔ http: server_tokens should be off if found in the http context.
그렇지 않은 경우 :
× Server tokens should be off: File /etc/nginx/nginx.conf (1 failed)
✔ File /etc/nginx/nginx.conf The config file should exist and be a file.
× http: server_tokens should be off if found in the http context.
expected: "off"
got: ["on"]
(compared using `cmp` matcher)
server_token
PHP 버전과는 아무런 관련이 없습니다. 일반적으로 별도의 헤더로 전송됩니다X-Powered-By
. php.net/manual/en/ini.core.php#ini.expose-php