2013-07-31 5 views
0

bean에서 filter = "true"조합을 통해 struts 1.2에서 XSS 공격을 방지 할 수있었습니다 : 메시지 작성 및 태그에서 StringEscapeUtils.escapeHtml4 (string) 사용 libs 내가 사용하고 있습니다. 그러나 다음 양식의 URL 공격을 통해 사이트를 공격 할 수 있습니다 ...Struts XSS 방지 - GET XSS 방지

www.mysite.com/App/Start.do?logo=mylogo'><script>alert("ATTACK")</script> 

이 문제를 방지하는 가장 좋은 방법에 대한 조언. 서블릿 필터를 사용해 보았지만 모든 요청 입력을 특수 문자로 변환하고 싶지 않습니다.

답변

1

내가 XSS는 웹 페이지에 기록하기 전에 &lt;, &gt;&quot; 모든 >, <" 문자를 대체 차단 발견했습니다 가장 쉬운 방법입니다. 이렇게하면 스크립트 태그, 이미지 태그 (src = of image 태그에서 XSS를 사용할 수 있음) 등의 장소에 사용자 입력을 배치하지 않는 한 XSS에서 자신을 보호 할 수 있으므로 자신을 만들 수 없습니다 태그.

PHP에서는 이와 같이 모든 문자를 인코딩하는 htmlSpecialChars 메서드를 사용하면됩니다. 그러나 Java에는이 방법이 없으므로 가장 빠른 방법은이를 대체하는 것입니다. 전체 목록을 직접 살펴보아야합니다. 당신이 당신의 예를 생존하지 말아야로는 제대로 된 방법을 사용하여 확인한다, 그래서 당신은 내가 위에서 제안 무엇을 수행하는 주장을 사용하여 StringEscapeUtils 방법에 대한 5 replaceAll()


docs을 구현하기 위해 너무 열심히해야하지 예방 의이 양식.

+0

응답 주셔서 감사합니다. 사용자가 위 URL을 치지 못하도록 URL에 대해 구체적으로 말하고 있습니다. 또는 모든 GET 요청을 차단하고이를 정리하십시오. –

+0

URL에 XSS가 포함되어 있으면 URL이 HTML로 구문 분석되지 않습니다. 따라서 사이트에 영향을 미치지 않습니다. 이것은 순수한 미학적 문제입니까? – Robadob

+0

URL에 자바 스크립트를 삽입 할 수 있는데, 일단 URL에 도달하면 실행됩니다. –