레거시 코드로 인해 Spring 컨트롤러에 포함 된 모든 객체에 포함 된 모든 문자열을 삭제 (특수 문자 또는 위험한 HTML 제거)하는 방법을 구현해야합니다. HandlerMethodArgumentResolver 내 자신의 구현을 쓴, 그래서 어떤 매개 변수를 가로 채서 컨트롤러에 보내기 전에 개체를 sanitize 수 있습니다. 또한 jsr-303 및 reflection을 사용하는 bean, 배열, 콜렉션, 맵 및 물론 단일 문자열을 사용하여 가장 일반적인 Java "유형"을 살균하는 유틸리티 클래스를 작성했습니다.java - 개체 구조를 반복하거나 이동하는 방법은 무엇입니까? 예 : 모든 문자열을 살균하기 위해서
public class ObjectSanitizer {
public static Object sanitizeObject(Object object)
throws EsapiValidationException {
Object result = getDefaultResult(object);
if (object instanceof String)
result = santitizeString((String) object);
else {
if (object != null) {
if (object instanceof Collection<?>) {
result = sanitizeCollection((Collection<?>) object);
} else if (object instanceof Map<?,?>) {
result = santizeMap(object);
} else if (object.getClass().isArray()) {
result = santizeArray(object);
} else {
result = sanitizeObjectWithJSR(object);
}
}
}
return result;
} ... Concrete sanitizers ... }
제 질문은 : 올바른 방법 (기본 제공 기능, API, 디자인 패턴)이 있습니까? 모든 자바 전문가와 초보자가 나 같은 것을 미리 감사드립니다.
문자열을 살균하는 것은 무엇을 의미합니까? – SamTebbs33
@ SamTebbs33 우리는 모든 입력 문자열에서 위험한 HTML 태그와 특수 문자를 제거하려고합니다. 서버 쪽 – Nino