`
dilantaya2
  • 浏览: 6737 次
文章分类
社区版块
存档分类
最新评论

防止sql注入过滤器

 
阅读更多

import java.io.IOException;  
import java.util.Iterator;  
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;  
/** 
* 通过Filter过滤器来防SQL注入攻击 
* 
*/ 
public class SQLFilter implements Filter {  
private String inj_str = "'|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare|; |or|-|+|,";  
protected FilterConfig filterConfig = null;  
/** 
* Should a character encoding specified by the client be ignored? 
*/ 
protected boolean ignore = true;  
public void init(FilterConfig config) throws ServletException {  
this.filterConfig = config;  
this.inj_str = filterConfig.getInitParameter("keywords");  
}  
public void doFilter(ServletRequest request, ServletResponse response,  
FilterChain chain) throws IOException, ServletException {  
HttpServletRequest req = (HttpServletRequest)request;  
HttpServletResponse res = (HttpServletResponse)response;  
Iterator values = req.getParameterMap().values().iterator();//获取所有的表单参数 
while(values.hasNext()){  
String[] value = (String[])values.next();  
for(int i = 0;i < value.length;i++){  
if(sql_inj(value[i])){  
//TODO这里发现sql注入代码的业务逻辑代码 
return;  
}  
}  
}  
chain.doFilter(request, response);  
}  
public boolean sql_inj(String str)  
{  
String[] inj_stra=inj_str.split("\\|");  
for (int i=0 ; i < inj_stra.length ; i++ )  
{  
if (str.indexOf(" "+inj_stra[i]+" ")>=0)  
{  
return true;  
}  
}  
return false;  
}  
}
分享到:
评论

相关推荐

    防止sql注入过滤器配置

    ### 防止SQL注入过滤器配置详解 #### 一、引言 在现代Web应用开发中,安全性一直是至关重要的方面。SQL注入攻击是黑客常用的一种手段,它通过恶意SQL语句来破坏或操纵数据库中的数据。为了保护系统免受此类攻击,...

    C# MVC 过滤器防止SQL注入

    C# MVC 过滤器防止SQL注入

    java过滤器防sql注入

    外网可能会被攻击,简单的处理可以避免! 外网可能会被攻击,简单的处理可以避免! 外网可能会被攻击,简单的处理可以避免! 外网可能会被攻击,简单的处理可以避免!...外网可能会被攻击,简单的处理可以避免!...

    java web Xss及sql注入过滤器.zip

    本项目"java web Xss及sql注入过滤器.zip"就是针对这两种威胁提供的一种解决方案,基于流行的Spring Boot 2.0框架进行开发。 XSS 攻击是通过在网页中插入恶意脚本,当其他用户访问该页面时,这些脚本会被执行,从而...

    SQL注入过滤 (Java版)

    本篇将详细探讨Java环境下如何实现一个SQL注入过滤器,并结合`web.xml`配置文件来部署和应用。 首先,我们需要了解SQL注入的基本原理。当用户输入的数据未经验证或转义就直接拼接到SQL查询语句中时,就可能发生SQL...

    java防sql注入攻击过滤器

    为了防止此类攻击,开发者通常会使用一种称为“SQL注入过滤器”的机制。本篇文章将深入探讨如何在Java中实现一个防SQL注入的过滤器,以及它的重要性。 SQL注入的原理是利用应用程序处理用户输入数据时的不足,将...

    sql注入Java过滤器

    配置在web.xml中,可以防止SQL注入,可以自己定义一些需要过滤的特殊字符

    mybatis如何防止SQL注入

    在使用MyBatis框架开发应用程序时,合理使用参数绑定技术(如`#{}`)以及对动态参数进行有效的过滤处理是防止SQL注入的关键。通过对MyBatis的正确配置和编程实践,可以大大降低应用程序面临的SQL注入风险,确保系统...

    防止sql注入的url过滤器

    防止sql注入的url过滤器,这个平时用到过得、觉得不错、所以跟大家分享下、

    防止sql注入的url过滤器【java filter】

    为了解决这一问题,我们可以利用Java的Filter机制来创建一个防止SQL注入的URL过滤器。下面将详细介绍这个过滤器的工作原理、配置方法以及如何有效地防止SQL注入。 首先,我们需要理解SQL注入的基本概念。SQL注入是...

    asp防止SQL注入和SQL注入资料

    asp防止SQL注入和SQL注入资料;asp;asp sql;asp防注入asp防止SQL注入和SQL注入资料;asp;asp sql;asp防注入asp防止SQL注入和SQL注入资料;asp;asp sql;asp防注入 asp的朋友可以看看 分享

    防止sql注入demo

    本示例"防止SQL注入demo"是针对这种威胁的一种防御措施,主要关注Java环境下的解决方案。下面我们将深入探讨SQL注入的基本原理、为何需要防止以及如何在Java中实现过滤器(Filter)来防止此类攻击。 1. SQL注入基础...

    C#防SQL注入

    在代码实现层面,可以采用一些自动化的方法来防止SQL注入,例如创建一个过滤器,对所有的用户输入进行检测。文章中提到的SqlFilter2方法就是一个示例,它通过检查用户输入中是否包含特定的SQL关键字来判断是否存在...

    struts2技巧,笔记.zip指定404,500页面 utf-8过滤器 防SQL注入 解决乱码

    这个压缩包文件包含了一系列与Struts2相关的技术点,主要集中在错误页面配置、字符编码问题、防止SQL注入和Struts2框架的特性上。以下是这些知识点的详细解释: 1. **错误页面配置**: 在Web应用中,当请求无法...

    SQL注入扫描器

    6. 实时监控:持续监测新的输入点,防止新出现的SQL注入风险。 **使用SQL注入扫描器的注意事项:** 1. 在生产环境中使用需谨慎,避免影响正常服务。 2. 扫描前应备份重要数据,以防意外。 3. 结合代码审查和安全...

    C#写的防止SQL注入式攻击的软件 可以作为课程设计

    - **参数化查询**:C#中的ADO.NET提供了参数化查询,如SqlCommand对象的Parameters属性,可以有效防止SQL注入。参数化查询确保输入数据被当作数据而不是代码执行。 - **存储过程**:使用存储过程可以限制数据库...

    有效防止SQL注入的5种方法总结

    以下是对防止SQL注入的五种方法的详细说明: 1. 使用参数化查询(PreparedStatement) 参数化查询是预防SQL注入最有效的方法之一。在Java中,可以使用PreparedStatement对象来执行预编译的SQL语句。预编译的SQL...

    java 过滤器filter防sql注入的实现代码

    本文将详细介绍如何使用Java Filter实现防止SQL注入的功能。 首先,我们需要创建一个实现了`javax.servlet.Filter`接口的类,例如名为`XSSFilter`。这个类将负责拦截请求并处理可能存在的SQL注入风险。下面是一个...

    防止sql注入的java代码

    本文将详细分析一个用于防止SQL注入的Java过滤器类——`Checksql`。 #### 类结构与功能 `Checksql`类实现了`javax.servlet.Filter`接口,主要负责对HTTP请求中的参数进行检查,以确保其不包含可能导致SQL注入攻击...

    sql注入与防止

    下面是一个简单的Java Filter示例,展示了如何通过过滤器来防止SQL注入攻击: ```java public class SQLFilter implements Filter { private String inj_str = "'|and|exec|insert|select|delete|update|count|*|%...

Global site tag (gtag.js) - Google Analytics