2009-06-01 3 views
-1

외부 이름을 입력하는 동안 사용자 이름 입력에서 XSS의 모든 가능성을 필터링하려고합니다.자바에서 사용자 입력에서 단어가 아닌 문자를 모두 필터링하는 방법

모든 단어를 여러 언어 (중국어와 일본어, 러시아어)로 화이트리스트하는 가장 좋은 방법은 무엇입니까?

전혀 가능합니까? "<>&gt;&lt;"으로 XSS 용 블랙리스트를 만드는 것은 쉽지만 해커는이 문제를 해결할 수 있습니다.

답변

3

잘못된 방향에서 문제가 다가오고 있다고 생각합니다.

일반적으로 XSS 증후군을 예방하는 것은 웹 사이트에 표시되는 사용자 제작 콘텐츠를 올바르게 이스케이프 처리하는 경우입니다.

그런 식으로 표시되는 내용이 사용자가 입력 한 내용과 정확히 일치하도록 할 수 있습니다. 이렇게하면 허용 목록에 실수로 몇 가지 나쁜 사례가 생길 위험이 없습니다.

+0

해커가 블랙리스트 (예 : http://ha.ckers.org/xss.html) 주변에서 길을 찾을 것이므로 매우 엄격한 허용 목록이 있어야한다는 인상을 받았습니다. 그러나이 경우 필자는 입력을 미국 (또는 서유럽) ASCII로만 제한하지 않고 동시에 "완전히"XSS 취약점이없는 화이트리스트를 원합니다. – tksu

+0

당신은 당연히 편집증 환자가 되겠지만, 나는 편집증 환자가 될 수도 있다고 생각합니다. 사용자 입력 데이터의 모든 문자를 인코딩하지 않으면 (예 : % XX 문자 코드로 변환), 잠재적 인 취약성을 놓친 가능성이 있으므로 100 % 보장 출력물은 안전합니다. 항상 모든 것을 인코딩 할 수 있습니다. – Cyphus

관련 문제