<filter> <filter-name>XssEscape</filter-name> <filter-class>cn.pconline.morden.filter.XssFilter</filter-class> </filter> <filter-mapping> <filter-name>XssEscape</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> </filter-mapping>
서블릿의 HttpServletRequestWrapper 구현 및 xss 공격을 수행할 수 있는 해당 메서드를 다시 작성:
package cn.pconline.morden.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; public class XssFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { chain.doFilter(new XssHttpServletRequestWrapper((HttpServletRequest) request), response); } @Override public void destroy() { } }
페이지에 데이터를 표시할 때 fn을 사용하면 됩니다. :escapeXml() xss 취약점이 발생할 수 있는 출력을 이스케이프합니다.
복잡한 내용이 표시되면 구체적인 문제가 자세히 분석됩니다.
또한 필터링된 콘텐츠를 표시하지 않으려면 StringEscapeUtils.unescapeHtml4(.)를 사용할 수 있습니다. 이 방법은 StringEscapeUtils.escapeHtml4()에 의해 이스케이프된 문자를 복원합니다.
위 내용은 Java에서 HttpServletRequestWrapper로 구현된 xss 주입의 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!