- 浏览: 477012 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (288)
- Java (70)
- Web (11)
- JSP (18)
- JavaScript (25)
- JQuery (22)
- HTML (7)
- CSS (2)
- Struts2.X (6)
- Ibatis/Mybatis (6)
- Hibernate (4)
- Spring (8)
- Oracle (23)
- MySql (9)
- Apache (1)
- Tomcat (9)
- Weblogic (2)
- Maven (6)
- Flex (0)
- Junit (2)
- Test (1)
- SVN (6)
- GIS (3)
- Android (1)
- Eclipse (10)
- Thread (3)
- JVM (1)
- Cache (2)
- Design pattern (1)
- Nosql (3)
- Linux (10)
- Hudson/Jenkins (1)
- MQ (1)
- Network (2)
- 生活工作 (5)
- 架构师之路 (6)
- 知识精华荟萃 (9)
- Interview (13)
最新评论
-
276847139:
方法很有效,我的问题就在是在父项目的.classpa ...
手动添加Maven Dependencies -
coosummer:
推荐使用http://buttoncssgenerator.c ...
button css 样式 -
lqz2012:
DBFFileReader是外部框架里面的吧,不是JDK的。楼 ...
java读取dbf文件 -
xudongcsharp:
lx13345 写道java.lang.NoSuchMetho ...
Spring常用错误 -
lx13345:
jar是hibernate3.3GA,ehcache-1.5. ...
Spring常用错误
巩固知识:
***********************************************
web.xml
Filter
//获取来源URL: String fromURL = request.getHeader("Referer"); // /ssm/ser.do String url = request.getRequestURI(); // http://localhost:8080/ssm/ser.do StringBuffer url_buffer = request.getRequestURL(); //常用的request头信息 out.println("Protocol: " + request.getProtocol()); out.println("Scheme: " + request.getScheme()); out.println("Server Name: " + request.getServerName() ); out.println("Server Port: " + request.getServerPort()); out.println("Protocol: " + request.getProtocol()); out.println("Server Info: " + getServletConfig().getServletContext().getServerInfo()); out.println("Remote Addr: " + request.getRemoteAddr()); out.println("Remote Host: " + request.getRemoteHost()); out.println("Character Encoding: " + request.getCharacterEncoding()); out.println("Content Length: " + request.getContentLength()); out.println("Content Type: "+ request.getContentType()); out.println("Auth Type: " + request.getAuthType()); out.println("HTTP Method: " + request.getMethod()); out.println("Path Info: " + request.getPathInfo()); out.println("Path Trans: " + request.getPathTranslated()); out.println("Query String: " + request.getQueryString()); out.println("Remote User: " + request.getRemoteUser()); out.println("Session Id: " + request.getRequestedSessionId()); out.println("Request URI: " + request.getRequestURI()); out.println("Servlet Path: " + request.getServletPath()); out.println("Accept: " + request.getHeader("Accept")); out.println("Host: " + request.getHeader("Host")); out.println("Referer : " + request.getHeader("Referer")); out.println("Accept-Language : " + request.getHeader("Accept-Language")); out.println("Accept-Encoding : " + request.getHeader("Accept-Encoding")); out.println("User-Agent : " + request.getHeader("User-Agent")); out.println("Connection : " + request.getHeader("Connection")); out.println("Cookie : " + request.getHeader("Cookie")); out.println("Created : " + session.getCreationTime()); out.println("LastAccessed : " + session.getLastAccessedTime());
***********************************************
web.xml
<filter> <filter-name>URLFilter</filter-name> <filter-class>com.shctc.util.URLFilter</filter-class> <init-param> <param-name>sqlInj</param-name> <param-value>java|String|and|exec|insert|select|delete|update|*|chr|mid|master|truncate|char|declare|;|-|+|,</param-value> </init-param> </filter> <filter-mapping> <filter-name>URLFilter</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping>
Filter
public class URLFilter implements Filter{ private static final long serialVersionUID = 12345L; Logger log =Logger.getLogger(URLFilter.class); private FilterConfig config=null; private String sqlInj=""; public void init(FilterConfig config) throws ServletException{ this.config=config; log.debug("FilterConfig:"+config); sqlInj=config.getInitParameter("sqlInj"); } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException{ HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse resp = (HttpServletResponse) response; String UserIP = request.getRemoteAddr(); String requestURL = req.getRequestURL()+ req.getQueryString(); log.debug("******请求用户来源:"+req.getHeader("Referer")); log.debug("******请求用户IP地址:"+UserIP); log.debug("******请求URL:"+requestURL); String[] inj_stra=sqlInj.split("\\|"); for (int i=0; i < inj_stra.length; i++){ if (requestURL.indexOf(inj_stra[i])>=0){ log.debug("******返回主页了,因为请求URL中含有敏感字符:"+inj_stra[i]); resp.sendRedirect("page/index.action"); return; } } //如果存在下一个dofilter方法,则调用下一个过滤器的dofilter方法;否则一直停在这 chain.doFilter(request, response); } public void destroy(){ config=null; }
发表评论
-
Servlet Listener
2014-03-26 17:35 1332Listener功能 它是基于观 ... -
jsp实现download excel功能中格式问题
2012-11-26 16:48 1147<foreach> <c:set va ... -
EL 语法
2012-01-18 21:43 1961EL元素必须以${开始,以}结束。 EL元素可以出现在模板文 ... -
JSTL formatDate tag
2012-01-17 22:42 1961<fmt:formatDate> 标签用于格式化 ... -
JSP中page和pageContext的区别
2011-11-15 15:02 1004page java.lang.Object 对应this ... -
使用JSTL标签 table三列换行
2011-08-29 15:00 1471<table width="90%" ... -
JSP 9 大内置对象介绍
2011-07-03 18:57 9431.request对象 客户端的 ... -
EL教程
2011-06-20 20:51 1498EL教程 一、JSP EL语言定义 EL(Ex ... -
JSTL常用
2011-04-23 17:26 1107一、JSTL判断: if判断语 ... -
解决url传中文参数时出现乱码问题
2011-04-11 17:09 1130第一种解决办法: Tomcat修改server.xml配置 ... -
简单设置-页面自动刷新或跳转
2011-04-10 22:48 1438当你做网页时,是不是有的时候想让你的网页自动不停刷新,或者过一 ... -
获取客户端IP地址
2011-04-07 12:33 1041在JSP里,获取客户端的IP地址的方法是: request.g ... -
jsp页url中传中文参数乱码的方法
2011-03-17 15:13 1264一个偶然的机会,发现了一个解决jsp页url中传中文参数乱 ... -
javaweb获取表单参数
2011-01-18 10:02 12431.关于Radio Button 比如这里有个form.htm ... -
莫名其妙的错 纠结...
2010-12-23 11:53 12922010-12-21 11:53:38 org.apache. ... -
关于jsp乱码问题的解决。
2010-11-13 22:51 1032关于jsp乱码问题的解决 ... -
javaee5.0与j2ee1.4
2010-11-05 10:45 1934在新建web工程时,如果选的是javaEE5自带的jstl,仅 ...
相关推荐
6. **配置过滤器**:在`web.xml`部署描述符中,需要定义过滤器,指定其类名、初始化参数以及过滤的URL模式。这样,当符合这些模式的请求到来时,过滤器就会被调用。 7. **过滤器接口**:主要使用`javax.servlet....
传统的防御方法如关键字过滤和正则表达式过滤虽然在一定程度上能够拦截一些注入攻击,但其效果并不理想,因为攻击者经常会通过各种手段绕过这些过滤器。 文章中提出的LFS方法(length-frequency-SQL syntax tree)...
- 利用注释符绕过过滤器:有些程序会过滤掉特定字符如单引号`'`,这时可以使用注释符`--`来绕过过滤。 - 构造联合查询:通过联合查询可以一次性获取多个表的信息。 - 使用盲注技术:在无法直接获取反馈的情况下,...
- **布尔盲注**:通过构造带有`AND 1=1`和`AND 1=2`的URL来测试是否可以注入。如果页面显示正常,则表示可能存在SQL注入漏洞。 - **错误注入**:利用错误消息来确定是否存在SQL注入漏洞。例如,在输入中加入单引号...
5. **漏洞确认**:基于响应的分析,判断是否存在SQL注入漏洞。例如,如果注入导致了额外数据的返回,或者请求执行时间明显增加,可能就存在注入点。 在提供的压缩包中,有两个程序可能实现了这些步骤的一部分或全部...
SQL注入是一种常见的Web应用程序安全漏洞,攻击者可以通过提交恶意的SQL代码到应用程序的输入字段中(如表单、URL等),利用这些输入来操控数据库执行非预期的操作,进而获取敏感数据、修改数据甚至破坏整个数据库...
在Java Web开发中,Filter过滤器是一个至关重要的概念,它属于JavaWeb的三大核心组件之一,另外两个是Servlet程序和Listener监听器。Filter的主要职责在于对HTTP请求进行预处理以及对响应进行后处理,而并非直接生成...
在Java应用中,动态过滤器解析器允许开发者根据特定条件或运行时环境动态地决定哪些过滤器应该被应用到请求流程中,提供了一种灵活且强大的过滤机制。 首先,我们要理解过滤器(Filter)在Java Web应用程序中的作用...
// 判断是否需要执行该过滤器,这里根据请求URI决定是否拦截登录接口 @Override public boolean shouldFilter() { RequestContext context = getCurrentContext(); return StringUtils.equals(context.get...
注入式攻击指的是攻击者直接向表单或URL中注入恶意SQL代码,而恶意提交式则涉及到在正常数据提交的过程中附带恶意的SQL代码。 SQL注入攻击的方法通常遵循以下步骤:首先攻击者会尝试确定网站是否存在注入漏洞,然后...
4. **错误处理和反馈**:在猜解过程中,猜解器会捕获服务器返回的错误信息,根据错误信息的差异来判断猜测是否正确。例如,如果注入导致查询失败,服务器可能会返回一个特定的错误页面,而成功时则不会。 5. **自动...
1. **URL编码**:使用URL编码来绕过某些过滤器,例如将`or 1=1`编码为`%6f%72%20%31%3d%31`。 2. **ASCII码替换**:将字符串转换为其对应的ASCII码表示形式,如`CHAR(101)+CHAR(97)+CHAR(115)+CHAR(116)`相当于`'...
它根据请求URL和Ant风格的模式来判断请求是否匹配,如果匹配,则执行对应的过滤器链。例如,登录请求可能通过一个包含认证过滤器的链,而管理接口可能通过另一个包含更严格授权规则的链。 6. **FilterChainProxy** ...
` 这一行代码用于在IE浏览器中创建XMLHttpRequest对象,它是实现Ajax的核心组件。现代浏览器通常使用 `new XMLHttpRequest()` 创建,但为了兼容老版本的IE,这里使用了ActiveXObject。 2. **定义回调函数**:`...
- **Acegi 在 Web 应用中的作用**:Acegi 使用 Servlet 过滤器来拦截 Servlet 请求,实现身份验证和安全性控制。 - **Acegi 的独特声明方式**:通过 Spring IoC 注入 Acegi 所需的其他对象,使得 Acegi 的配置更加...
使用过滤器清除HTML属性。 使用匹配器插入组件。 自动链接URL,IP,电子邮件和主题标签。 渲染表情符号和表情符号字符。 以及更多! < Interweave xss=removed>HTML</b> and will safely be rendered!" / > < ...
从JavaScript代码中访问过滤器133 过滤器做什么与不做什么134 过滤器与DOM操作135 过滤器中代价高昂的数据变换136 不稳定的过滤器136 48摘要138 第5章创建高级表单139 51AngularJS表单与传统表单的比较139 ...
3. **利用编码**:使用URL编码、HTML编码或其他编码方式来绕过过滤器,使恶意代码看起来像是正常字符。 4. **时间盲注**:如果系统对查询进行了限制或过滤,时间盲注允许攻击者通过检查查询的执行时间来判断条件...