java web 登录安全_[浅谈运用Java,Web解决用户登录的安全问题]浅谈技巧在舞蹈表演中的运用...

摘要 在开发项目时,系统的安全问题是必须要考虑的。在Java Web中,运用JSP和Servlet技术可以很好的解决用户登录系统的身份验证和授权的安全问题。   关键词 Java Web;用户登录;安全问题

中图分类号TP312 文献标识码A 文章编号 1674-6708(2011)34-0195-02

网络安全问题一直是计算机行业的一个焦点问题。安全是一个永恒的问题,无论是什么样的应用程序,都需要一定级别的安全,尤其是在分布式环境下运行的系统。在企业级应用程序中,安全可以分为4层:身份验证层、授权层、数据完整层和保密层。这4层提高了应用程序的安全级别。

Web应用的组件主要包括视图、控制器和业务方法。业务方法通常是由控制器调用的,所以基本的安全控制主要是对视图和控制器的控制。

1 用户登录系统的过程分析

用户进入系统是通过登录功能来实现的,主要是通过用户名和密码来登录,有时为提高系统的安全级别,还会使用图形验证码、动态口令卡等辅助安全措施。用户在登录之后能够访问哪些资源是由用户的权限决定的。用户登录的时候,系统根据用户名可以获取用户的权限,根据用户的权限可以对用户能够操作的资源进行控制。这个控制包括对某个页面的控制、某个控制器的控制或者某一部分代码的控制。

2 用Servlet来实现用户登录功能

用户在进入系统时,系统会提供登录功能所需要的登录界面和处理文件,用户在登录界面中输入用户名和密码后,处理文件在获取用户输入的用户名和密码进行有效的验证,根据验证的结果分别做出相应的处理。当用户名和密码都正确后,系统要获取当前用户的权限,把用户信息和权限信息保存在session中,为之后的安全控制使用。当用户名和密码不正确后,则重新转向登录界面,并提示用户错误信息。

2.1 用户类的创建

用户在登录过程中应输入用户名和密码,并且根据用户的权限实现对系统的操作。根据面向对象的设计的方法,用户类应包含如下成员变量:

private String name;//用户名成员变量

private String password;//用户密码成员变量

private String type;//用户权限成员变量

对用户类成员变量进行赋值和获取值的方法采用getXXX()和setXXX()方法部分代码如下:

public String getName() //获取用户名成员变量值的方法

public void setName(String name) //对用户名成员变量进行赋值的方法

在用户类中还封装验证用户名和密码是否正确的方法,其方法名为:findUserByName(String name),它可以在数据库中查询出是否存在此用户。

2.2 Servlet现实用户登录功能

Servlet处理用户登录过程为:获取用户输入的用户名和密码,根据用户名调用模型的相应方法,根据返回值进行处理,如果返回值为null,则说明用户不存在。否则,判断密码是否正确,如果不正确,提示密码错误信息。如果正确,判断用户的权限。LoginServlet为登录Servlet文件,其doPost()方法的核心代码为:

String fd="login.jsp";;//转向文件

UserBean u=new UserBean();//创建用户对象

HttpSession se=req.getSession();//创建Session对象

UserBean user=u.findUserByName(req.getParameter("name"));///在数据库中查询用户

if(user==null){

se.setAttribute("info", "用户不存在");

}else if(!user.getPassword().equals(req.getParameter("password"))){密码是否正确

se.setAttribute("info", "密码不正确");

}else if(user.getType().equals("1")){

se.setAttribute("login", user);

fd="admin.jsp";//管理员

}else{

se.setAttribute("login", user);

fd="guest.jsp";//普通用户

}

req.getRequestDispatcher(fd).forward(req, resp);//重定向

3 视图的安全控制

在进行完Servlet文件处理后,根据session中的用户信息来决定用户是否登录和用户的权限。只有管理员才可以进入到admin.jsp管理员界面,实现管理操作,如果用户没有登录,则返回到login.jsp登录界面;如果当前用户为普通用户,则进入到guest.jsp普通用户界面。用于安全控制的checkuser.jsp页面代码如下:

通过视图的安全控制,可以防止一些非法用户进入到本系统中的界面中,现实视图层的安全机制。

4 过滤器的安全控制

过滤器(filter)是一个对象,它用来在源数据和目的地数据之间截获信息,然后对在它们之间传递的数据进行过滤,也就是说当访问Servlet过滤器所对应的Servlet时,会先执行Servlet过滤器,对请求和响应的信息进行过滤。如图2所示。

图2过滤器的过滤功能

过滤器可以提高系统的安全性,可以使用户在调用Servlet登录功能之前对用户信息进行过滤,将一些非法信息过滤掉,提高系统的运行效率。UserLoginFilter过滤器是用于验证session是否含有用户信息,以判断用户是否登录和用户权限。其doFilter()方法的核心代码:

HttpServletRequest rq=(HttpServletRequest) req;

HttpServletResponse re=(HttpServletResponse) resp;

HttpSession session=rq.getSession();//获得session对象

UserBean user=(UserBean)session.getAttribute("login");

if(user==null){//判断用户登录信息

re.sendRedirect("login.jsp");

}else if(user.getType().equals("0")){//普通用户进入到普通界面

re.sendRedirect("guest.jsp");

}else{//管理员进入到管理界面

re.sendRedirect("admin.jsp");

}

我们可能编写多个过滤器,现实一条过滤链,可以将用户信息逐一进行过滤最后保证请求和响应的信息安全。

5 结论

运用Java Web技术实现了视图验证、过滤器验证和Servlet登录功能的验证,可以使用户登录系统的安全性得以提高,防止恶意用户登录到系统中。当然系统安全是一个复杂的问题,本文希望能起着“抛砖引玉”的作用,为日后设计和开发Web应用程序时提供给大家一点启发和思路。

本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值