2013-12-13 9 views
2

Servlet 3.0 스펙을 읽었을 때, 나는 다음과 같은 것을 보았고 이것이 정말로 권장되는 일인지 궁금합니다. 용기가 구현 정보를 게시 에 X-전원-으로 HTTP 헤더를 사용하는 것이 좋습니다자바 서블릿 3.0은 X-Powered-by를 노출하도록 권장합니다. 이것은 안 좋은 행동이 아닌가?

: 나는 보안상의 이유로이 정보를 포함하지 않도록 조언을 통해 오는 기억한다. 필드 값은 "Servlet/3.0"과 같은 하나 이상의 구현 유형으로 이어야합니다. 선택적으로, 컨테이너 및 보조 Java 플랫폼 의 보충 정보는 괄호 안에 구현 유형 뒤에 추가 할 수 있습니다. 이 헤더는 이 표시되지 않도록 컨테이너를 구성 할 수 있어야합니다. 다음은이 헤더의 예는 다음과 같습니다

X가 강화 된-기준 : 서블릿/3.0 JSP/2.2 (글래스 피쉬 V3의 JRE/1.6.0) 예를 들어, here를 들어

, 그것은 이러한 행위에 대해 주장입니다. 한 번 도구를 사용하여 내 웹 사이트를 분석하여 잠재적 인 문제가 있는지 확인하고 보안 경고 및 X-Powered-By 헤더를 제거하는 것이 좋습니다.

+1

보안 전문가가 아니기 때문에 실제 답변이 아닙니다. 어쨌든 :이 머리글을 드러내는 것은 약간의 보안 위험이 있지만 사소한 것입니다. 모호함에 의한 보안은 신뢰할 수 없습니다. 그리고 나는 정보가 노출되는 방법에 관한 권고를 * 추측한다. 즉 "실제로 정보를 노출하려면 X-Powered-By HTTP 헤더로"* NOT * "구현 정보를 공개하도록 권장합니다."라고 권장합니다. –

답변

1

나는 일반적으로 서블릿 컨테이너를 인터넷에 직접 놓지 않을 것이다. 그게 리버스 프록시 (그리고로드 밸런싱)를 사용하는 것입니다.

질문에 답변하십시오; 나는 특히 security through obscurity이 "좋은"보안 관행이라고 생각하지 않습니다.

+0

그러나 보안을 통한 보안은 일반적인 개념처럼 좋은 접근 방법이 될 수는 없지만 '핑거 프린팅'(예 : 시스템 핑거 프린팅)은 표준 공격의 첫 번째 단계 중 하나이기 때문에 대부분의 일반적인 보안 개념에 확실히 포함되어 있습니다 (또는 침투 시험). – JBA

1

보안을 통한 무명 보안은 보안의 '계층'입니다. 이 상황과 관련되어 있으므로 헤더를 숨기지 말고 숨기는 것이 좋습니다. 특정 서버 응답 헤더를 찾을 자동화 된 도구, 스캐너, 봇 등이 있습니다. 적절한 조건이 충족되면 도구/봇은 악용 사례를 호스트에 보내는 등의 추가 기능을 수행합니다. 단순히 헤더를 숨김으로써 공격 및 다른 유형의 공격을 막을 수 있습니다. 허락하면 취약한 응용 프로그램은 여전히 ​​취약한 응용 프로그램입니다. 어쨌든 ... 요점은, 그 헤더를 제거하는 것이 좋습니다. 보안은 레이어로 구현되어야하며 응용 프로그램의 기본 프레임 워크의 발자국을 방지하는 것이 보안을 유지하기위한 여러 단계 중 첫 번째 단계입니다.