Tôi muốn che dấu phiên bản hoặc xóa hoàn toàn tiêu đề.Làm cách nào để ngăn Gunicorn trả lại tiêu đề http 'Server'?
11
A
Trả lời
1
Bạn có thể chỉnh sửa _ _ init _ _ .py để đặt SERVER_SOFTWARE thành bất kỳ thứ gì bạn muốn. Nhưng tôi thực sự thích khả năng vô hiệu hóa điều này với một lá cờ vì vậy tôi không cần phải nộp đơn xin lại bản vá khi tôi nâng cấp.
12
Để thay đổi 'Server:' tiêu đề http, trong tập tin conf.py của bạn:
import gunicorn
gunicorn.SERVER_SOFTWARE = 'Microsoft-IIS/6.0'
Và sử dụng một lời gọi dọc theo dòng của gunicorn -c conf.py wsgi:app
Để loại bỏ các tiêu đề hoàn toàn, bạn có thể khỉ -gatch gunicorn bằng cách thay thế lớp đáp ứng http của nó bằng một lớp con lọc ra tiêu đề. Điều này có thể vô hại, nhưng có lẽ không được khuyến cáo. Đặt sau trong conf.py:
from gunicorn.http import wsgi
class Response(wsgi.Response):
def default_headers(self, *args, **kwargs):
headers = super(Response, self).default_headers(*args, **kwargs)
return [h for h in headers if not h.startswith('Server:')]
wsgi.Response = Response
Thử nghiệm với gunicorn 18
Great câu hỏi! Đây là một thực hành bảo mật tốt. – Flimm