`

防止直接输入URL进入系统

 
阅读更多

***************防止直接输入URL进入系统*****************************

package org.hs.common.filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class AuthFilter implements Filter {

	public void destroy() {
		// TODO Auto-generated method stub

	}

	public void doFilter(ServletRequest servletRequest,
			ServletResponse servletResponse, FilterChain filterChain)
			throws IOException, ServletException {
		/**
		 * 1,doFilter方法的第一个参数为ServletRequest对象。此对象给过滤器提供了对进入的信息(包括*
		 * 表单数据、cookie和HTTP请求头)的完全访问。第二个参数为ServletResponse,通常在简单的过*
		 * 滤器中忽略此参数。最后一个参数为FilterChain,此参数用来调用servlet或JSP页。
		 */
		HttpServletRequest request = (HttpServletRequest) servletRequest;
		/**
		 * 如果处理HTTP请求,并且需要访问诸如getHeader或getCookies等在ServletRequest中*
		 * 无法得到的方法,就要把此request对象构造成HttpServletRequest
		 */
		HttpServletResponse response = (HttpServletResponse) servletResponse;
		String currentURL = request.getRequestURI();
		System.out.println("currentURL::"+currentURL);
		// 取得根目录所对应的绝对路径:
		String targetURL = currentURL.substring(currentURL.indexOf("/", 1),
				currentURL.length());
		System.out.println("targetURL:"+targetURL);
		// 截取到当前文件名用于比较
		HttpSession session = request.getSession(false);
		if (!"/jxkh/login.jsp".equals(targetURL)) {// 判断当前页是否是重定向以后的登录页面页面,如果是就不做session的判断,防止出现死循环
			if (session == null || session.getAttribute("login_user") == null) {
				// *用户登录以后需手动添加session
				System.out.println("request.getContextPath()="
						+ request.getContextPath());
				response.sendRedirect(request.getContextPath() + "/jxkh/login.jsp");
				// 如果session为空表示用户没有登录就重定向到login.jsp页面
				return;
			}
		}
		// 加入filter链继续向下执行
		filterChain.doFilter(request, response);
		/**
		 * 调用FilterChain对象的doFilter方法。Filter接口的doFilter方法取一个FilterChain对象作* 为它
		 * 的一个参数。在调用此对象的doFilter方法时,激活下一个相关的过滤器。如果没有另*
		 * 一个过滤器与servlet或JSP页面关联,则servlet或JSP页面被激活。
		 */
	}

	public void init(FilterConfig arg0) throws ServletException {
		// TODO Auto-generated method stub

	}

}
分享到:
评论

相关推荐

    asp防止直接输入网址访问

    ### ASP防止直接输入网址访问知识点解析 在Web开发中,为了保护网站的安全性和提供更合理的访问流程,有时候我们需要限制用户直接通过输入URL的方式访问某些页面。这种限制可以通过检测用户的访问来源来实现,确保...

    ASP技术常遇问题解答-如何防止未经注册的用户绕过注册界面直接进入应用系统?.zip

    本文将深入探讨如何防止未经注册的用户绕过注册界面直接进入应用系统,以保护系统的完整性与安全性。 首先,我们需要了解ASP.NET的身份验证模型。ASP.NET提供了多种身份验证方式,包括Windows身份验证、Forms身份...

    CAM350输入汉字

    由于CAM350默认可能使用英文键盘布局,所以无法直接输入汉字。此时,你可以切换到系统输入法,例如Windows系统中的搜狗输入法或微软拼音输入法,通过输入拼音来选择汉字。在输入法中选择“英文”模式,然后在输入框...

    WEB考勤系统

    对了安装时候在WEB上安装,直接输入URL,例如:http://127.0.0.1/jobmng/setup.asp初...业拿?郑┖呛恰?/a>本套程序版本是ACCESS版,也是当初设计这套程序的最早版。有一些**能还没有完善,例如请假、出差等**能。本...

    SAP PI 开发系统和生产系统SLD数据自动同步的配置

    登录到开发系统的SLD管理端,进入“Administration” -> “Synchronization”。点击“Add”,选择“Remote (Sync with another SLD)”。若需要双向同步(即两个SLD互相更新),可以勾选“Bi_Directional”选项。在...

    直接录入网址访问

    综上所述,通过这种方式可以有效地防止用户未经登录就直接通过URL访问受保护的页面,从而提高了系统的安全性。此外,通过对用户输入数据的规范化处理,还可以有效预防常见的安全问题,如SQL注入、XSS攻击等。

    图书信息管理系统静态页面制作.doc

    系统需要登录成功才可操作,需要防止未经登录的用户通过输入 URL 地址直接进入其他页面。 支持 GBK 编码。 显示记录有分页显示功能。 统一的导航条、当前登录用户姓名显示。 良好的分层设计。基于 DAO 模式和 JSP ...

    web安全性测试用例基础

    输入验证是防止恶意数据进入系统的首要步骤。测试用例应覆盖以下内容: - 验证数据类型:确保输入符合预期类型,如数字、字母、日期等。 - 长度限制:测试输入的最大和最小长度,以及边界情况。 - 特殊字符:...

    jquery输入字符过滤

    在这个场景下,“`jquery输入字符过滤`”是指利用jQuery来实现对用户输入的字符进行过滤,以防止非法或危险的字符进入系统,确保数据的纯洁性和系统的安全性。 一、jQuery字符过滤基本概念 字符过滤主要涉及两个...

    OK3W管理系统

    "在线咨询.url"可能是一个快捷方式,引导用户直接进入客服或支持页面。 4. **辅助文档**: "说明.htm"可能包含系统的使用指南或者帮助文档,为用户提供操作指导。"book.asp"可能涉及到图书管理,这表明该系统可能...

    确定数据进入点.docx

    确定这些数据进入点后,开发者和安全专家可以进行进一步的分析和测试,包括输入验证、数据过滤、SQL注入防护等,以防止恶意数据的注入和攻击。此外,理解这些数据流也有助于优化应用程序性能和用户体验,确保系统的...

    23世纪影院系统html版 v1.0

    5. **限制后台访问**:后台管理界面受到严格保护,不允许直接通过URL访问,只有通过特定的验证流程才能进入,有效防止了未授权访问。 三、源代码开放 作为一个开源项目,23世纪影院系统提供了源代码供开发者研究和...

    WEB安全性测试测试用例(基础)

    - 直接输入URL访问受限页面,测试权限控制。 - 修改URL参数,看是否能非法进入页面。 - 在URL中注入HTML和JavaScript,测试是否被执行。 10. UBB代码注入: - 输入不完整的或嵌套的UBB代码,观察处理结果。 - ...

    eml企业通讯录管理系统经典版V5.4.5 通讯录管理sql注入漏洞1

    - 输入验证:任何从用户处接收的数据都应进行严格的验证和清理,防止恶意数据进入系统。 - 参数化查询:使用预编译的SQL语句,避免将用户输入直接拼接到SQL中,可以有效防止SQL注入。 - 最小权限原则:确保每个...

    基于ASP.NET、SQL SERVER技术建设的网站安全问题及解决方案.pdf

    绕过登录验证的漏洞通常发生在网站未对用户是否已登录进行验证,允许用户直接输入URL访问页面。例如,在地址栏直接输入特定URL即可绕过登录过程。登录验证页面漏洞的产生多是由于程序设计不严谨,例如,将用户输入的...

    单点登录SSO原理.docx

    当用户访问其他系统时,这些系统会检查Cookie中的信任凭证,若验证通过,则允许用户直接进入。然而,这种方案存在两个主要问题:一是Cookie的安全性,这通常通过加密Cookie来改善;二是跨域问题,由于浏览器的同源...

    Struts2的应用--酒店客房管理系统

    9. **数据校验**:通过Struts2的Validator插件,可以在Action执行前对用户输入进行验证,防止无效或恶意的数据进入系统,提高了系统的安全性。 10. **AJAX支持**:Struts2可以与jQuery等库结合,实现部分页面的异步...

    运用JDBC实现一个注册登录系统的编写

    在实际项目中,还需要考虑错误处理、异常捕获、输入验证等其他细节,确保系统的健壮性和安全性。同时,随着技术的发展,ORM框架如Hibernate和MyBatis已经简化了这些操作,但理解JDBC的基础对于成为一名优秀的Java...

    公司餐饮管理系统前台营业操作办法

    - **方法一**:在服务管理器的【服务状态】界面点击“进入系统”,这将通过专用浏览器打开登录页面。 - **方法二**:通过其他浏览器访问指定的URL地址。如果使用的是默认浏览器,系统会直接进入程序;也可以手动复制...

    好用的内容管理系统源码

    由于所有文件已到位,系统会自动检测并引导你进入安装向导。 4. **安装过程**:安装向导将引导你完成设置,可能包括数据库配置、管理员账号创建、站点基本信息设定等。按照屏幕上的提示一步步操作即可。 【标签】:...

Global site tag (gtag.js) - Google Analytics