public class SecurityFilter extends JcmsServletFilter implements javax.servlet.Filter
<filter>
<filter-name>securityFilter</filter-name>
<filter-class>com.jalios.jcms.servlet.SecurityFilter</filter-class>
<init-param>
<param-name>enabled</param-name>
<param-value>true</param-value>
</init-param>
<!-- 1. should we filter redirect value ? -->
<init-param>
<param-name>filterRedirect</param-name>
<param-value>true</param-value>
</init-param>
<!--
List of valid redirect start value.
You should make a combination of all possible:
- scheme (http/https)
- ports (none, 80, 443)
- domains and ip (jalios.com, www.jalios.com, )
- path (/)
-->
<init-param>
<param-name>validRedirectURLs</param-name>
<param-value>
http://localhost:8080/jcms/
http://127.0.0.1:8080/jcms/
</param-value>
</init-param>
<!-- List of valid redirect perl5 regular expression pattern. -->
<init-param>
<param-name>validRedirectURLsRegexp</param-name>
<param-value>
https?://(127\.0\.0\.1|localhost)/jcms/.*
https?://(127\.0\.0\.1|localhost):(8080|8443)/jcms/.*
</param-value>
</init-param>
<!-- 2. should we filter XSS attempts ? -->
<init-param>
<param-name>filterXSS</param-name>
<param-value>true</param-value>
</init-param>
<!-- List of params to check for XSS attempts. -->
<init-param>
<param-name>paramsToCheckForXSS</param-name>
<param-value>redirect id portal</param-value>
</init-param>
<!--
Optional redirect URL (relative to the webapp or absolute)
used when security error is detected
-->
<init-param>
<param-name>redirectURL</param-name>
<param-value>custom/reportSecurityError.jsp</param-value>
</init-param>
And add this filter mapping:
<filter-mapping>
<filter-name>securityFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Here is an example of jsp in which you can display informations about the
hacking attempt:
<%@ include file='/jcore/doInitPage.jspf' %>
<%
String invalidRedirect = (String) session.getAttribute(SecurityFilter.INVALID_REDIRECT_KEY);
session.removeAttribute(SecurityFilter.INVALID_REDIRECT_KEY);
String invalidParam = (String) session.getAttribute(SecurityFilter.INVALID_PARAM_KEY);
session.removeAttribute(SecurityFilter.INVALID_PARAM_KEY);
%>
Someone is trying to hack this site.<br />
redirect: <%= Util.escapeHtml(invalidRedirect) %><br />
param: <%= Util.escapeHtml(invalidParam) %>
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
INVALID_PARAM_KEY
session attribute key used when a invalid param is detected
|
static java.lang.String |
INVALID_REDIRECT_KEY
session attribute key used when a invalid redirect is detected
|
static java.lang.String |
REVISION |
| Constructor and Description |
|---|
SecurityFilter() |
| Modifier and Type | Method and Description |
|---|---|
void |
destroy()
Implementation of
Filter.destroy() method. |
void |
doFilter(javax.servlet.ServletRequest req,
javax.servlet.ServletResponse res,
javax.servlet.FilterChain chain)
Implementation of
Filter.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) method. |
void |
init(javax.servlet.FilterConfig conf)
Implementation of
Filter.init(javax.servlet.FilterConfig) method. |
endFilter, initJSONBridge, processFilterpublic static final java.lang.String REVISION
public static final java.lang.String INVALID_REDIRECT_KEY
public static final java.lang.String INVALID_PARAM_KEY
public void init(javax.servlet.FilterConfig conf)
throws javax.servlet.ServletException
Filter.init(javax.servlet.FilterConfig) method.init in interface javax.servlet.Filterjavax.servlet.ServletExceptionpublic void destroy()
Filter.destroy() method.destroy in interface javax.servlet.Filterpublic void doFilter(javax.servlet.ServletRequest req,
javax.servlet.ServletResponse res,
javax.servlet.FilterChain chain)
throws java.io.IOException,
javax.servlet.ServletException
Filter.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) method.doFilter in interface javax.servlet.Filterjava.io.IOExceptionjavax.servlet.ServletExceptionCopyright © 2001-2017 Jalios SA. All Rights Reserved.