내 응용 프로그램은 스프링 MVC 응용 프로그램이며 주석 (스프링 3.1.1을 사용하지만 상당히 오래된 응용 프로그램)을 사용하지 않습니다.요청 매개 변수의 HTML 인코딩
나는 curl과 같은 도구 또는 웹 브라우저 URL에서 직접 호출 할 수있는 JSP 페이지가 있습니다. URL은 내가 요청 매개 변수 "mylocation"을 인코딩 html로 어떻게 요청 매개 변수 "mylocation"
를 읽고 SimpleFormController 같은의 구현을 호출 위의 URL을 호출에 위치
http://localhost:8080/testdomain/registeruser.do?mylocation=fr
라는 요청 매개 변수를 받아 들인다 . 내 컨트롤러의 요청 [request.getParameter ("mylocation")]에서 매개 변수를 읽기 전에 HtmlUtils.htmlEscape (request.getParameter ("mylocation"))를 호출하면 충분합니다.
양식이 없으므로주의하십시오. 앞에서 설명한대로 mylocation의 입력 매개 변수를 백업하면 명령 줄 도구 또는 브라우저 URL에서이를 호출 할 수 있습니다.
왜 인코딩 하시겠습니까? 당신은 mylocation 매개 변수에 대한 올바른 값을 얻었습니까? 이것이 영숫자 값일 경우 일반적으로 이스케이프/이스케이프 할 필요가 없습니다. – Damian
XSS의 위협이있을 수 있습니다. 악의적 인 의도가있는 스크립트를 전달할 수 있습니다. HTML 인코딩이 스크립트 특수 문자를 인코딩 된 형식으로 변환한다는 것을 이해했습니다. – megan
그 매개 변수로 무엇을하고 있습니까? js 변수 안에 데이터를 출력하는 경우 HTML Escaping으로 충분하지 않습니다. 그러나 신뢰할 수없는 단일 매개 변수 만 있으면 간단하게 검증 할 수 있습니다. 예를 들어 출력을 생성하기 전에 myLocation 값이 Enum 유형에 존재하는지 확인합니다. MyAllowedLocations.valueOf (myLocation); –