2012-12-03 4 views
2

Heroku에서 실행중인 레일즈 애플리케이션의 루비에서 http 응답 헤더에서 서버 정보를 제거하려고하는데 막혔습니다. 응답 헤더를 검사하면 다음과 같이 나타납니다.내 랙 애플 리케이션에서 "서버"HTTP 응답 헤더를 제거하는 방법

Server:thin 1.5.0 codename Knife 

누구나 올바른 방향으로 나를 가리킬 수 있습니까?

+0

http://stackoverflow.com/questions/10323331/remove-unnecessary-http-headers-in-my-rails-answers –

+0

@slivu'Server' 헤더는 모든 랙 미들웨어가 반환 된 후 Thin에 의해 추가됩니다. 연결된 질문은 앱에서 추가 한 다른 헤더를 제거하는 것으로 만 처리됩니다. (헤더를 제거하기 위해 nginx를 사용할 것을 제안하는 다른 대답은 Heroku 삼나무 더미에서는 작동하지 않을 수 있습니다.) – matt

답변

1

Server 헤더는 응답을 어셈블 할 때 set by the Thin server입니다. A recent commit adds the ability to set the Server to something else이지만 완전히 제거 할 수있는 것처럼 보이지는 않습니다. 당신이 할 수있는

한 가지 더 Server 헤더 결과 nilThin::VERSION contsant의 값을 설정하는 것입니다 전송되는 :

Thin.send :remove_const, :SERVER 
Thin::SERVER = nil 

첫 번째 줄이 생성 될 경고를 방지하는 것입니다 상수를 변경. 이제 Thin이 Server 헤더를 설정하려고 시도 할 때 nilskips it으로 표시되므로 헤더가 전혀 설정되지 않습니다.

+0

Thanks matt. 웬일인지 이것은 나에게 조금 해킹하는 것처럼 보입니다. 방금 랙 솔루션을 사용하여 랙 솔루션을 찾았습니다. –

+1

@JonasGrau 나는 약간의 해킹에 동의하지만,'Server' 헤더를 추가하는 코드는 Thin에 "하드 코딩"되어 있으므로 다른 방법을 통제 할 수 없다. 필자는 미들웨어 솔루션에 관심이있을 것입니다. 미들웨어가 실행되고 랙과 독립되어 있으므로 헤더가 추가되었다고 말할 수있는 한 미들웨어의 헤더에 영향을 줄 수 있다고 생각하지 않았습니다. – matt

관련 문제