网站有后天,判断管理员是否登录,这样的代码是否安全
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain filter) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
HttpSession session = request.getSession();
String managerLoginName = (String) session.getAttribute("adminloginname");
if (managerLoginName != null) { // 如果已经登录
filter.doFilter(req, res);
} else { // 如果没有登录
response.sendRedirect(Config.PRO + "login.xhtml"); // 跳转到登录页面
}
}//管理员登录成功后执行:req.getSession().setAttribute("adminloginname", user.getName()); <filter>
<filter-name>AdminLoginFilter</filter-name>
<filter-class>com.xxx.web.action.AdminLoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>AdminLoginFilter</filter-name>
<url-pattern>/admin/*</url-pattern>
</filter-mapping>
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain filter) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
HttpSession session = request.getSession();
String managerLoginName = (String) session.getAttribute("adminloginname");
if (managerLoginName != null) { // 如果已经登录
filter.doFilter(req, res);
} else { // 如果没有登录
response.sendRedirect(Config.PRO + "login.xhtml"); // 跳转到登录页面
}
}//管理员登录成功后执行:req.getSession().setAttribute("adminloginname", user.getName()); <filter>
<filter-name>AdminLoginFilter</filter-name>
<filter-class>com.xxx.web.action.AdminLoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>AdminLoginFilter</filter-name>
<url-pattern>/admin/*</url-pattern>
</filter-mapping>
解决方案 »
- iBatis字段名是变量怎么办?
- 关于servlet中getParameter方法判断,请高手帮忙解一下这个小问题
- 关于SQL的。
- 关于J2EE JSEE JMEE的讨论
- 大家开发图表的时候一般用什么图表组件啊 都来谈谈 有效果图的最好
- 关于sql
- jsp中读入文件流,然后通过PrintWrite写出来,现在写的文件比源文件要大,不知什么缘故,求解?!
- JavaBean是普通的.CLASS文件么?是不是javac bean.java这样产生的?
- 如何使TOMCAT在WIN2000S中自动启动?而不用电脑启动是去手工启动?问题解决就送分!
- java读取网页的问题
- Hibernate+Spring 多数据源 怎么弄?
- 404错误
如果每次(String) session.getAttribute("adminloginname");取出来的属性值都是一定值,那么感觉就不太安全了,可能随机方式会更好些。
建议还是做安全控制会比较好,比如你那个session里面可以存如一些随机数,还有就是可以使用rsa来加密,保证在前台传到后台的时候中间网络传输过程中是加密的。
如何你要使用session的话,传入两个值,一个是adminloginname,一个是MD5(adminloginname + key[长度大于16位]),服务器接收到 adminloginname 再次MD5 和传过来的MD5对比,若相同则登录管理员
所以以session是否为空来判断是否登录我觉得是可以的。查用MD5加密
如何你要使用session的话,传入两个值,一个是adminloginname,一个是MD5(adminloginname + key[长度大于16位]),服务器接收到 adminloginname 再次MD5 和传过来的MD5对比,若相同则登录管理员这个接受到不明白怎么接收,我觉得整个过程都是在服务器端的。