Struts 1 프레임 워크에 새로운 문제가 있습니다. 페이지에서 일부 입력 값을 필터링해야하므로 맞춤 필터를 작성했습니다.매핑하기 전에 원시 매개 변수를 얻는 방법
어떤 형식에도 매핑되지 않은 단일 매개 변수에 유용합니다. 그러나 그것은 일부 struts 양식 필드에 매핑되었을 때 매개 변수를 얻지 못합니다.
누구나 어떻게 대처할 생각이 있습니까? 여기
내 필터의 코드
public class XSSFillter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
chain.doFilter(new XSSRequest((HttpServletRequest) request), response);
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void destroy() {
}
}
내가 web.xml에 그것을 정의한 물론
public class XSSRequest extends MultipartRequestWrapper{
public XSSRequest(HttpServletRequest request) {
super(request);
}
@Override
public String[] getParameterValues(String name) {
String[] values = super.getParameterValues(name);
if(values == null){
return null;
}
String[] newValues = new String[values.length];
for(int index = 0; index < values.length; index++){
newValues[index] = XSSFilterUtil.removeXSSTokens(values[index]);
}
return newValues;
}
@Override
public String getParameter(String name) {
String value = super.getParameter(name);
return XSSFilterUtil.removeXSSTokens(value);
}
@Override
public String getHeader(String name) {
String value = super.getHeader(name);
return XSSFilterUtil.removeXSSTokens(value);
}
}
여기
이 가장 중요한 부분 중 하나입니다, 내 생각 .
if (isMultipart) {
parameterValue = multipartParameters.get(name);
} else {
parameterValue = request.getParameterValues(name);
}
그래서 한 경우
parameterValue
는
multipartParameters
에서 촬영되고, 결과적으로 그들은 어떤 임시 파일에 정의되어 있습니다. 가장 좋은 방법은 모든 요청 매개 변수를 수정 한 다음 Struts 1.3.8 라이브러리를 던져 보겠습니다.
정확히 무엇을하고 있는지 알지 못하면 도움을 받기가 어렵습니다. "일부 입력 값 필터링"이란 무엇을 의미합니까? –
XSS 콘텐츠에서 입력 값을 필터링해야합니다. – Sergii
그리고 어떻게 지내니? XSS 필터링 게시물이 아니라 매개 변수 값을 수정하는 메커니즘을 의미합니다. 코드가 필요합니다. –