WEB的信息安全隐患之一:
未授权用户通过直接在IE中输入URL直接登录系统
解决办法:
通过配置filter过滤无效用户的连接请求.
WEB的信息安全隐患之二:
合法用户"注销"后,在未关闭浏览器的情况下,点击浏览器"后退"按钮,可从与本地页面缓存中读取数据,绕过了服务端filter过滤.
解决办法:
在必要的页面(包含敏感信息) 设定页面缓存限制.
也可以把上面两步组合在一个,通过同一个filter实现.具体如下:
1.配置filter(web.xml)
......
<filter>
<filter-name>Authentication</filter-name> <!-- Authentication过滤器别名 -->
<filter-class>com.mycompany.myweb.management.util.AuthenticationFilter</filter-class> <!-- 过滤器Authentication指向的具体类 -->
<init-param>
<param-name>onError</param-name> <!-- 过滤器初始化参数配置 -->
<param-value>/Logon.do</param-value> <!-- 这里指定无效用户跳转方向 -->
</init-param>
</filter>
<filter-mapping>
<filter-name>Authentication</filter-name>
<url-pattern>/management/*</url-pattern> <!-- management/*是要过滤的文件的位置,表示过滤management文件夹下的所内容。 -->
</filter-mapping>
<filter-mapping>
<filter-name>Authentication</filter-name>
<url-pattern>/Main.do</url-pattern> <!-- Main.do/*是要过滤的请求,表示过滤此请求指定的页面的所内容。 -->
</filter-mapping>
......
AuthenticationFilter过滤器实现类:
package com.mycompany.myweb.management.util;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import org.apache.struts.Globals;
import org.apache.struts.action.*;
public class AuthenticationFilter implements Filter {//一定要使用Filter接口
private FilterConfig filterConfig;
private String onErrorUrl;
public void init(FilterConfig config) throws ServletException {
filterConfig = config;
nErrorUrl = filterConfig.getInitParameter("onError");
if (onErrorUrl == null || "".equals(onErrorUrl)) {
nErrorUrl = "onError";
}
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain next) throws IOException, ServletException {
HttpServletRequest httpRequest = (HttpServletRequest) request;
HttpServletResponse httpResponse = (HttpServletResponse) response;
HttpSession httpSession = httpRequest.getSession();
/**
* @author justin ray
* @see 页面缓存设定
* <br>确保浏览器不缓存页面数据
*/
httpResponse.setHeader("Cache-Control","no-cache");
httpResponse.setHeader("Cache-Control","no-store");
httpResponse.setDateHeader("Expires", 0);
httpResponse.setHeader("Pragma","no-cache");
/**
* @author justin ray
* @see 过滤未登录用户无效请求
* <br>未登录用户请求跳转到/Logon.do
*/
if (httpSession.getAttribute("ePAccountInfo") == null) {
ActionErrors errors = new ActionErrors();
errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("没有登录"));
httpRequest.setAttribute(Globals.ERROR_KEY, errors);
httpRequest.getRequestDispatcher(onErrorUrl).forward(httpRequest,
httpResponse);
} else
next.doFilter(request, response);
}
public void destroy() {
}
}
分享到:
相关推荐
使用filter验证session用户和页面缓存问题处理
《Java Web编程宝典(十年典藏版)》是一本集技能、范例、项目和应用为一体的学习手册,书中介绍了应用Java Web进行程序开发的各种技术、技巧。全书分4篇,共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境...
里面文件是cors-filter-1.7.jar和java-property-utils-1.9.jar两个jar包的压缩文件
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
解决Tomcat跨域的两个jar包,java-property-utils-1.9.jar和cors-filter-1.7.jar
积分多的大佬打赏下,缺积分用;积分不够得移步https://www.cnblogs.com/BambooLamp/p/12603299.html 原文:https://segmentfault.com/a/1190000012469713
cors-filter-1.7.jar,java-property-utils-1.9.jar Geoserver 安装及CORS跨域资源访问配置
跨域配置
提供Arcgis Server 10.2 跨域(CORS)包java-property-utils-1.9.jar和cors-filter-1.7-sources.jar
这两个jar包是配置CORS跨域访问时需要的,具体的配置方式请参考http://blog.csdn.net/liuxins/article/details/53944891
一. 在tomcat的lib目录下添加jar包cors-filter-1.5.0.1.jar,java-property-utils-1.9.jar 二. tomcat路径下conf/web.xml文件中添加以下内容,可以在原文件中找到<filter>标签酌情添加。不要加到开头或者结尾。 ...
计算机毕业设计-CRMEB-Java版商城系统-filter.zip
最全面关于J2EE跨域资源共享的解决方案以及所需要依赖的Jar包,cors-filter-1.7.jar,java-property-utils-1.9.jar, tomcat配置方法连接 http://bsxsb.com/index.php/2015/08/07/tomcat下通过cors实现跨域配置/
一个分布式Java Web Session。基于filter机制。 优点 支持多种序列化方式,默认使用Java自带的Serializable方式(兼容性最好); 支持多种Session存储方案,默认是redis; 合并session的写操作,一个request里的多次...
亲测可用,cors-filter-1.7,java-property-utils-1.9下载
《Java Web整合开发王者归来(JSP+Servlet+Struts+Hibernate+Spring)》附1张DVD光盘,内容为《Java Web整合开发王者归来(JSP+Servlet+Struts+Hibernate+Spring)》汲及的源代码和Java Web学习视频。 《Java Web整合...
cors-filter-1.7.jar,java-property-utils-1.9.jar两个包供学习使用,如有侵犯,敬请告知
最全面关于J2EE跨域资源共享的解决方案以及所需要依赖的Jar包,cors-filter-1.7.jar,java-property-utils-1.9.jar,绝对能用
Java_Filter过滤机制详解.docJava_Filter过滤机制详解.docJava_Filter过滤机制详解.docJava_Filter过滤机制详解.docJava_Filter过滤机制详解.docJava_Filter过滤机制详解.docJava_Filter过滤机制详解.docJava_Filter...
cors-filter-1.7.jar,Java-property-utils-1.9.jar Arcgis Server 10.2 跨域配置所需jar包