- 浏览: 1692673 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (1323)
- easyui学习 (21)
- jquery (51)
- css (21)
- js (103)
- html (19)
- java (95)
- 测试工具 (7)
- oracle (45)
- eclipse (9)
- spring (8)
- 开源框架 (111)
- struts (12)
- hsqlbd (2)
- h2database (2)
- maven (8)
- activiti (2)
- sql语句 (7)
- fmpp (1)
- apache (2)
- tomcat (6)
- jbpm (2)
- ant (20)
- mysql (10)
- 业务需求 (54)
- ralasafe (3)
- Quartz (4)
- mybatis (8)
- flex (6)
- html5 (16)
- apache工具 (4)
- hibernate (5)
- linux (109)
- powerdesigner (3)
- 报表 (1)
- log4j (2)
- junit (1)
- shiro (4)
- wap (3)
- php (28)
- mantis (1)
- poi (3)
- extjs (1)
- 安防 (34)
- 网络 (113)
- UltraEdit (1)
- 手机 (9)
- freemarker (19)
- jquery mobile (28)
- css3 (1)
- 微信 (9)
- nodejs (7)
- 项目管理 (14)
- 文档 (13)
- ibatis (22)
- ftp (3)
- spring MVC (9)
- groovy (2)
- AngularJS (19)
- nginx (15)
- 会计 (5)
- hive (1)
- 分布式 (8)
- 设计模式 (4)
- velocity (2)
- 爬虫 (2)
- git (1)
- thymeleaf (4)
- activemq (5)
- bootstrap (1)
- Spring Batch (1)
- memcache (20)
- ttserver (1)
- Jenkins (1)
- cxf (1)
- axure (2)
- 银行金融 (11)
- c语言 (2)
- 大数据 (4)
- drools (4)
- python (2)
- 交易所 (1)
- haproxy (1)
- dubbo (3)
- dos (3)
- 人力资源 (4)
- 支付 (1)
- Intellij IDEA (1)
- IPO (1)
- springboot (1)
- 质量管理 (7)
- svn (1)
- 其他 (8)
- 阿里云 (2)
- 多媒体设计 (2)
- 数据库 (4)
- wps (0)
最新评论
-
masuweng:
en
Native.js -
rmnjava:
我按照你的方法写的,不起作用啊
easyui验证的删除和恢复 -
rmnjava:
原地址打不开了呀
easyui验证的删除和恢复 -
sunteng:
sunteng 写道这是json 吗[{url:'aaa'}, ...
freemarker解析json数组 -
sunteng:
这是json 吗
freemarker解析json数组
我们在开发系统的时候,总是要防止sql注入的,下面是我采用过滤器方式来阻止sql注入的,感觉效率很慢的,所以各位有好的方式请推荐。
过滤器代码:
package com.zbxsoft.uct.auth; import java.io.IOException; import java.util.Enumeration; 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 com.zbxsoft.tools.LogUtil; import com.zbxsoft.tools.StrUtil; /** * 防止sql攻击过滤器 * @author qmhao * @version 1.2.3 */ public class SqlFilter implements Filter { static String[] splitSql = null; static String errorPage = "/"; /** * 初始化 */ public void init(FilterConfig arg0) throws ServletException { String ep = arg0.getInitParameter("errorPage");// 读配置文件 if (ep != null) { errorPage = ep; } String sqlStr = arg0.getInitParameter("sqlStr");// 读配置文件 if (sqlStr != null) { splitSql = sqlStr.split("\\|"); } } public void destroy() { } /** * 执行过滤 */ public void doFilter(ServletRequest srequest, ServletResponse sresponse, FilterChain chain) throws ServletException, IOException { HttpServletRequest request = (HttpServletRequest) srequest; HttpServletResponse response = (HttpServletResponse) sresponse; response.setCharacterEncoding("UTF-8"); if (splitSql != null && splitSql.length > 0) { Enumeration enum1 = request.getParameterNames(); while (enum1.hasMoreElements()) { String param = enum1.nextElement().toString(); String value = request.getParameter(param); LogUtil.info("------sqlFilter: value="+value); if (!isCorrectContent(value)) { response.setContentType("text/html;charset=UTF-8"); response.getWriter().write("<script>alert('请求参数中含有非法字符!');</script>"); LogUtil.error(">>>>>>>>>>>>>>sql过滤未通过!!param:"+param+"value:"+value); return ; } } } LogUtil.debug(">>>>>>>>>>>>>>sql过滤通过!!"); chain.doFilter(request, response); } /** * 判断是否是安全值 * @param paraValue * @return boolean true是安全的,false为不安排的 */ public static synchronized boolean isCorrectContent(String paraValue) { if (StrUtil.isNull(paraValue)) { return true; } for (int i = 0; i < splitSql.length; i++) { if (paraValue.toLowerCase().indexOf(splitSql[i]) != -1) { // if (paraValue.toLowerCase().equals(splitSql[i])) { return false; } } return true; } }
web.xml配置
<!-- 安全过滤器:sql注入,敏感词 --> <filter> <filter-name>sqlFilter</filter-name> <filter-class>com.zbxsoft.uct.auth.SqlFilter</filter-class> <init-param> <param-name>sqlStr</param-name> <param-value>grant|exec|execute|insert|drop|select|delete|update|truncate|declare</param-value> </init-param> <init-param> <param-name>errorPage</param-name> <param-value>/common/error.jsp</param-value> </init-param> </filter>
发表评论
-
Lombok
2019-04-10 13:52 319Lombok能以简单的注解 ... -
Dozer
2019-04-08 13:49 285Dozer是一种Java Bean到Java Bean的映射 ... -
Spring security框架
2019-04-02 11:20 309一个能够为基于Spring的企业应用系统提供声明式的安全訪问控 ... -
java中常用的对象类型(po,vo,bo)
2018-04-25 10:34 403PO(persistant object) 1.持久对象 ... -
HikariCP
2018-03-12 08:22 861http://brettwooldridge.github. ... -
Amoeba Mysql读写分离
2018-03-07 11:37 391Amoeba(变形虫)项目,专 ... -
UnicastRemoteObject.exportObject使用
2018-03-01 13:45 1540public class CalculatorServ ... -
Spring对RMI的支持
2018-03-01 13:18 460public class SimpleObject { ... -
RMI使用
2018-03-01 12:50 353搭建一个RMI服务的过程分为以下7步; 1,创建远程方法接 ... -
volatile关键字
2018-02-28 13:13 326volatile关键字的两层语义一旦一个共享变量(类的成员变量 ... -
Jackson简单封装
2017-09-15 09:20 1010import java.io.IOException ... -
Http与Servlet工具类
2017-09-15 09:14 686/** * Http与Servlet工具类. ... -
金额格式转换
2017-09-15 09:21 570import java.math.BigDec ... -
日期工具类
2017-09-14 09:27 333public static String form ... -
编码解码工具类
2017-09-14 09:24 716import java.io.UnsupportedE ... -
Properties文件工具类
2017-09-14 08:59 574import java.io.IOExcepti ... -
全角转半角
2017-09-14 08:51 453/** * 全角转半角 * ... -
UUIDGenerator生成唯一编码
2017-09-14 08:46 1333生成唯一编码 import java.net.Ine ... -
ip转换为long
2017-09-12 17:27 1149public class IpUtils { pu ... -
https证书问题
2017-08-23 08:42 598https用于绕过证书不对情况 import java.n ...
相关推荐
### MyBatis如何防止SQL注入 #### SQL注入简介与危害 SQL注入是一种常见的Web应用程序安全漏洞,攻击者可以通过提交恶意的SQL代码到应用程序的输入字段中(如表单、URL等),利用这些输入来操控数据库执行非预期的...
### 使用Python防止SQL注入攻击的实现示例 #### 文章背景与重要性 随着网络技术的发展,Web应用程序的安全性越来越受到人们的重视。开放式Web应用程序安全项目(OWASP)每几年都会发布一次关于Web应用程序最常见...
Java 防止 SQL 注入的几个途径 Java 防止 SQL 注入是一个非常重要的安全问题。SQL 注入攻击是黑客最常用的攻击方式之一,它可以让攻击者访问或修改数据库中的敏感信息。因此,防止 SQL 注入是 Java 开发者必须注意...
### Python中防止SQL注入的方法详解 #### 前言 SQL注入是一种常见的网络安全攻击手段,攻击者通过在输入数据中嵌入恶意SQL代码,利用应用程序的漏洞执行非法操作,如篡改、删除或检索敏感数据等。对于使用Python...
Java 防止 SQL 注入 Java 防止 SQL 注入是一个至关重要的安全问题,SQL 注入攻击是最常见的攻击方式之一,它不是利用操作系统或其他系统的漏洞来实现攻击的,而是程序员因为没有做好判断,被不法用户钻了 SQL 的...
C# MVC 过滤器防止SQL注入
防止SQL注入的方法主要包括: 1. 参数化查询:使用预编译的SQL语句(如PreparedStatement),将用户输入作为参数传递,而不是直接拼接到SQL字符串中。这样可以防止恶意代码改变SQL语句的结构。 2. 使用存储过程:...
防止SQL注入是每个Web开发者必须关注的重要问题。在这个主题中,我们将深入探讨“防止SQL注入工具类”的相关知识点,以及如何在实际开发中有效地应用这些工具。 首先,我们需要理解SQL注入的基本原理。当应用程序...
本文主要介绍了如何使用JavaScript代码来防止SQL注入,这是为了保证Web应用的安全性,防止恶意用户通过输入特定的SQL语句来破坏数据库。文章从两个方面进行了说明,包括URL地址防注入和输入文本框防注入。 首先,...
C#全站防止SQL注入是确保应用程序安全的关键措施,下面将详细介绍如何利用Global.asax和App_code中添加类来实现这一目标。 首先,我们来理解Global.asax文件的作用。Global.asax,也被称为应用程序全局事件处理程序...
为了防止SQL注入,开发者需要采取一系列的预防措施,确保应用程序的安全性。以下是一些核心的解决方案: 1. **预编译语句(PreparedStatement)**: 题目中提到的预编译语句是防止SQL注入的关键技术。预编译语句在...
总之,虽然参数化查询是防止SQL注入的首选方法,但SqlFilter类提供了一个可行的补充方案,尤其适用于那些难以立即进行架构调整的老项目。通过在应用层面上增设此类过滤机制,可以有效地提升应用程序的安全性。当然,...
SQL 注入防止方法 SQL 注入是一种常见的攻击手法,攻击者可以通过在输入数据中注入恶意的 SQL 代码,从而获取数据库的敏感信息或控制数据库。为了防止 SQL 注入,需要从多方面入手,包括使用预编译语句、正则表达式...
Mybatis 如何防止 sql 注入?mybatis 拦截器了解过吗,应用场景是什么.详情介绍Mybatis 如何防止 sql 注入?mybatis 拦截器了解过吗,应用场景是什么.详情介绍Mybatis 如何防止 sql 注入?mybatis 拦截器了解过吗,...
本示例"防止SQL注入demo"是针对这种威胁的一种防御措施,主要关注Java环境下的解决方案。下面我们将深入探讨SQL注入的基本原理、为何需要防止以及如何在Java中实现过滤器(Filter)来防止此类攻击。 1. SQL注入基础...
本文将深入探讨C#防止SQL注入式攻击的相关知识点,并结合"Ex18_04防止SQL注入式攻击"这一示例进行说明。 1. **理解SQL注入攻击** SQL注入攻击通常发生在应用程序没有正确验证用户输入时,攻击者可以通过输入特定的...
在提供的"防止SQL注入式攻击.exe"和"SQLInner"这两个文件中,可能包含了一个示例程序或工具,用于演示如何防止SQL注入。运行或研究这些文件可以加深对防御机制的理解。不过,从安全角度出发,不应随意运行未知来源的...
ASP.NET 防止 SQL 注入攻击的方法有很多,这些方法包括参数法防注入、传统的笨一点的办法、HttpModule 实现防sql注入、SqlFilter 防止 SQL 注入、validation 防止 SQL 注入等。只有通过使用这些方法,才能有效地防止...
详细的介绍了防止sql注入攻击,内附asp.net 源码和vb.net源码。是初学者不错的选择。希望能够帮助到你。
参数化查询为什么能够防止SQL注入 参数化查询是一种防止SQL注入的有效方法,但很多人不知道为什么参数化查询能够防止SQL注入。下面,我们将一步一步的解释为什么SQL注入发生和参数化查询如何防止SQL注入。 首先,...