2010-02-23 5 views
0

Java 응용 프로그램에서 XSS 공격을 막아냅니다. 핸들을 가지고있는 HttpServletRequest 객체에 URL과 숨겨진 필드 매개 변수를 인코딩하고 싶습니다.HttpServletRequest - 빠른 방법으로 URL 및 숨겨진 필드 매개 변수를 인코딩합니다.

어떻게해야합니까?

+0

질문을 명확히 할 수 있습니까? 무엇을 위해 그들을 인코딩합니까? –

+0

HTML 페이지에 안전하게 표시하기 위해 인코딩하려고합니다. 문자가 이스케이프 처리 된 경우 – AJM

답변

1

그렇게하지 마십시오 라이브러리에서 StringEscapeUtils를 사용할 수 있습니다. 불필요하게 더 복잡하게 만듭니다. 표시 중에 만 이스케이프 처리하십시오. 다른 주제에서 내 대답보기 : Java 5 HTML escaping To Prevent XSS

1

사용자가 입력 한 데이터를 HTML 페이지에 올바르게 표시하려면 String#replace 또는 이와 유사한 방법을 통해 특수 HTML 문자가 엔티티로 올바르게 인코딩되었는지 확인해야합니다. 만약 당신이 좋아하면

str = str.replace("&", "&amp;").replace("<", "&lt;"); 

또한 >을 대체 할 수 있지만, 필요에가 없습니다 : 좋은 소식이있다 아주 작은 (이 목적을 위해) 인코딩해야한다는 것입니다.

이것은 XSS뿐 아니라 문자가 올바르게 표시되기 때문에 발생합니다. 공통 라틴 집합 외부의 문자가 문자 집합 문제 (UTF-8 대 Windows-1252 등)로부터 보호되도록 적절한 엔터티로 변환되도록 처리 할 수도 있습니다.

+0

그렇지 않으면 속성의 내용이 안전하지 않음 – Kornel

+0

@porneL : 큰 따옴표를 사용했을 때만 해당 출력이 속성 값으로 출력되는 경우에만 속성을 인용하십시오 (HTML은 인용 속성에 대해 작은 따옴표 나 큰 따옴표를 허용합니다). –

관련 문제