| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.jalios.jcms.servlet.JcmsServletFilter
com.jalios.jcms.servlet.SecurityFilter
public class SecurityFilter
ServletFilter to add an additionnal security layer to a JCMS webapp.
 
 When enabled, this filter performs the following checks :
 
  <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.jsp' %>
  <%
    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) %>
 
| Field Summary | |
|---|---|
| static String | INVALID_PARAM_KEYsession attribute key used when a invalid param is detected | 
| static String | INVALID_REDIRECT_KEYsession attribute key used when a invalid redirect is detected | 
| static String | REVISION | 
| Constructor Summary | |
|---|---|
| SecurityFilter() | |
| Method Summary | |
|---|---|
|  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. | 
| Methods inherited from class com.jalios.jcms.servlet.JcmsServletFilter | 
|---|
| initJSONBridge, processFilter | 
| Methods inherited from class java.lang.Object | 
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| Field Detail | 
|---|
public static final String REVISION
public static final String INVALID_REDIRECT_KEY
public static final String INVALID_PARAM_KEY
| Constructor Detail | 
|---|
public SecurityFilter()
| Method Detail | 
|---|
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.Filter
public void doFilter(javax.servlet.ServletRequest req,
                     javax.servlet.ServletResponse res,
                     javax.servlet.FilterChain chain)
              throws IOException,
                     javax.servlet.ServletException
Filter.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) method.
doFilter in interface javax.servlet.FilterIOException
javax.servlet.ServletException| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||