sql注入

Druid连接池简介和配置

社会主义新天地 提交于 2020-01-31 08:31:50
Druid是什么?有什么作用? Druid首先是一个数据库连接池,但它不仅仅是一个数据库连接池,它还包含一个ProxyDriver,一系列内置的JDBC组件库,一个SQL Parser。 Druid的项目背景?目前的项目团队情况?开源目的? 2010年开始,我负责设计一个叫做Dragoon的监控系统,需要一些监控组件,监控应用程序的运行情况,包括Web URI、Spring、JDBC等。为了监控SQL执行情况,我做了一个Filter-Chain模式的ProxyDriver,缺省提供StatFilter。当时我还做了一个SQL Parser。老板说,不如我们来一个更大的计划,把连接池、SQL Parser、Proxy Driver合起来做一个项目,命名为Druid,于是Druid就诞生了。 2011年2月春节期间,我完成了连接池(DruidDataSource)的第一个版本,4月开始在生产环境测试,2012年第一季度开始大规模实施。 提交过代码的开发者有5个人,主要代码是我维护,有一人专门负责内部实施。 通过开源,希望有更多使用场景,更多的反馈,更多人参与其中,共同打造最好的数据库连接池。 Druid支持哪些数据库? Druid支持所有JDBC兼容的数据库,包括Oracle、MySql、Derby、Postgresql、SQL Server、H2等等。

Java学习十三

99封情书 提交于 2020-01-30 19:01:05
学习内容: 1.Java反射 2.jdbc入门 1.反射的概述 Java的反射机制:动态获取信息以及动态调用对象方法 Java的反射机制的作用:用来编写一些通用性较高的代码或者框架的时候使用 原理:java文件编译成class文件,通过jvm将class对象加载到内存中,其中构造方法加载为构造对象,属性加载为Field对象,方法加载为Method对象 2.Field类:属性 Filed对象的获得 得到所有的成员变量 Field[] fields = c.getFields();//取得所有public属性(包括父类继承) Field[] fields = c.getDeclareFields();//取得所有public属性(包括父类继承) 得到指定的成员变量 Field name = c.getFields("name ");//取得所有public属性(包括父类继承) Field name = c.getDeclareFields("name ");//取得所有public属性(包括父类继承) 设置Field变量是否可以访问 field.setAccessible(boolean) Field变量值的读取、设置 field.get(obj) field.set(obj,value) 案例demo public void demo1() throws Exception{ /

pikachu靶场 :四、SQL注入

大城市里の小女人 提交于 2020-01-30 15:55:36
pikachu靶场 :四、SQL注入 概述 数字型注入(post) 字符型注入(get) insert/update 注入 insert update delete 注入 sql 盲注 基于布尔 基于时间 宽字节注入 概述 在owasp发布的top10排行榜里, 注入漏洞一直是危害排名第一的漏洞 ,其中注入漏洞里面首当其冲的就是数据库注入漏洞。 一个严重的SQL注入漏洞,可能会直接导致一家公司破产! SQL注入漏洞主要形成的原因是在数据交互中,前端的数据传入到后台处理时, 没有做严格的判断 ,导致其传入的“数据”拼接到SQL语句中后,被当作SQL语句的一部分执行。 从而导致数据库受损(被脱裤、被删除、甚至整个服务器权限沦陷)。 在构建代码时,一般会从如下几个方面的策略来 防止SQL注入漏洞 : 对传进SQL语句里面的变量进行过滤,不允许危险字符传入; 使用参数化(Parameterized Query 或 Parameterized Statement); 还有就是,目前有很多ORM框架会自动使用参数化解决注入问题,但其也提供了"拼接"的方式,所以使用时需要慎重! 数字型注入(post) 在提交页面随便选一个选项,进行查询,使用burp抓包。 因为是数字型,直接在后面加上真命题,不需要加单引号测试。 修改id参数为1 or 1=1 ,发送,得到返回的数据库数据。 字符型注入(get

ADO.NET数据访问技术入门

巧了我就是萌 提交于 2020-01-30 10:14:09
ADO.NET概览 在应用程序开发过程中,大多数时候都需要与数据库进行交互。在 .NET 问世之前,常用的有 ODBC 、 OLEDB 和 ADO 等数据访问技术。而在 .NET 下, Microsoft 推荐使用 ADO.NET 这种全新的数据处理方式。 ADO.NET 包括两个核心组件:数据提供程序和数据集。数据提供程序用于连接到数据源,支持数据访问和处理。数据集支持数据以关联的方式,在断开连接的情况下独立的缓存数据,根据需要更新数据源。 每个数据源提供程序都有各自的命名空间,并且都把各自所连接的数据源类型作为其前缀。如 System.Data.SqlClient 命名空间是 SQL Server 的 .NET Framework 数据提供程序; System.Data.OracleClient 命名空间是用于 Oracle 的 .NET Framework 数据提供程序。 .NET 下每个数据提供程序都具备以下两项相同的核心功能: 通过与数据源的活动链接来访问数据。 与断开连接的数据集和数据表进行数据交换。 System.Data.SqlClient命名空间概览 .NET 下访问 SQL Server 常用的有 System.Data.SqlClient 和 System.Data.OleDb 这两个命名空间,但前者相对更高效,本实例也是基于 System.Data

day28 JavaWEB阶段——JDBC笔记(mysql-5.1.37和mysql-8.0.15数据库驱动包,SQL 注入原因和解决方案,PreparedStatement 完成增、删、改、查)

戏子无情 提交于 2020-01-30 03:54:24
JDBC mysql-5.1.37和mysql-8.0.15数据库驱动包下载 ,如何导入IDEA往下看 今日源码 链接: https://pan.baidu.com/s/12ibAtAjbaRGFPuAcaA52Dg 提取码:n6ux 第1节 回顾 1.1 表连接 内连接: 隐式、显式 隐式: 没有 join,使用 where 显式: inner join…on 外连接: 左连接和右连接 左连接: left outer join … on 右连接: right outer join … on 1.2 子查询 三种情况: 单行单列:比较运算符:>、<、= 多行单列:使用 in 关键字 多行多列:放在 from 后面,做为一张表再次查询 1.3 备份与还原 备份:mysqldump -u 用户名 -p 密码 数据库 > 文件名 还原: 登录使用数据库 use 数据库 source 文件名 1.4 事务 事务四个特性 ACID:原子性、一致性、隔离性、持久性 在 mysql 中有三条语句: 开启事务:start transaction 提交事务:commit 回滚事务:rollback 设置事务回滚点:savepoint 名字 回到回滚点:rollback to 名字 第2节 学习目标 能够理解 JDBC 的概念 能够使用 DriverManager 类 能够使用 Connection

【Web漏洞】SQL注入

半腔热情 提交于 2020-01-30 03:00:40
目录 Mysql注入 union query(union联合查询) time-based blind(基于时间的盲注) boolean-based blind(基于布尔型盲注) Access注入 boolean-based blind(基于布尔型盲注) Mysql注入 union query(union联合查询) 1、回显正确 http://www.dandelion.com/about.php?id=15' and 1=1 --+ 2、回显错误,断定存在注入,并确认payload http://www.dandelion.com/about.php?id=15' and 1=2 --+ 3、回显错误,字段小于9 http://www.dandelion.com/about.php?id=15' order by 9 --+ 4、回显正确,字段长度为8(凡是小于等于正确字段长度都会回显正确) http://www.dandelion.com/about.php?id=15' order by 8 --+ 5、将参数改为负值(清空页面输出),并构造联合查询 http://www.dandelion.com/about.php?id=-15' union select 1,2,3,4,5,6,7,8 --+ 输出: 5 6、查询用户名,当前数据库名,当前数据库版本,数据库路径

代码审计之SQL注入:BlueCMSv1.6 sp1

好久不见. 提交于 2020-01-30 02:30:18
Preface 这是一篇纪录关于BlueCMSv1.6 sp1两个SQL注入的审计过程,原文来自 代码审计之SQL注入:BlueCMSv1.6 sp1 ,主要纪录一下个人在参考博文复现这两个漏洞经过。 参看视频: BlueCMS 1.6 SQL 注入漏洞 工具及环境 bluecms v2.1 sp1     链接: http://pan.baidu.com/s/1dFKLanR 密码:8v1c seay审计系统     链接: http://pan.baidu.com/s/1dENS4KT 密码:rszt 环境   PHP: 5.4.45       MYSQL: 5.5.53 环境搭建   关于环境搭建,简单说几句。可以使用phpstudy这款集成化工具,可以很方便的使用和切换环境,安装好之后直接将下载好的bluecms的源码放到安装的路径下即可,如:C:\phpStudy\WWW。   也即把\bluecms_v1.6_sp1\uploads目录下的文件放到C:\phpStudy\WWW目录下,因为我的C:\phpStudy\WWW目录下还有其他文件,就直接把解压后的bluecms_v1.6_sp1放在C:\phpStudy\WWW目录下了。在我这的路径是这样的:C:\phpStudy\WWW\bluecms_v1.6_sp1\uploads。 安装   访问本地:http:/

Mybatis面试题目

爱⌒轻易说出口 提交于 2020-01-29 04:45:26
${s}与#{s}的区别 1.${s}是Properties文件中的变量占位符,属于静态文本替换,比如 d r i v e r 会 被 静 态 替 换 为 c o m . m y s q l . j d b c . D r i v e r 。 e g : i d = {driver}会被静态替换为com.mysql.jdbc.Driver。eg:id= d r i v e r 会 被 静 态 替 换 为 c o m . m y s q l . j d b c . D r i v e r 。 e g : i d = {1 Or 1=1}(sql注入问题)。即传入的s是什么花括号中就是什么。 2.#{}是sql的参数占位符,Mybatis会将sql中的#{}替换为?号,***在sql执行前***会使用PreparedStatement的参数设置方法,按序给sql的?号占位符设置参数值,比如ps.setInt(0, parameterValue),#{item.name}的取值方式为使用反射从参数对象中获取item对象的name属性值,相当于param.getItem().getName()。使用#{}可以有效的防止SQL注入,提高系统安全性。一般能用#的就别用 , , , 方式一般用于传入数据库对象,例如传入表名. 3.用法:select * from user where name

Django ORM那些相关操作

北慕城南 提交于 2020-01-29 03:48:36
参考博客:https://www.cnblogs.com/liwenzhou/p/8660826.html Django ORM那些相关操作 一般操作: 看专业的官网文档,做专业的程序员! 必知必会的13条: <1>all( ) :查询所有结果; <2>filter(**kwargs ) :它包含了匹配所给筛选条件的所有对象; <3>get(**kwargs ) :返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误; <4>exclude(**kwargs ) :它包含了与所给筛选条件不匹配的对象; < 5> values(* field): 返回一个ValueQuerySet——一个特殊的QuerySet,运行后得到的并不是一系列model的实例化对象,而是一个可迭代的字典序列 < 6> values_list(* field): 它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列 < 7> order_by(* field): 对查询结果排序 < 8> reverse(): 对查询结果反向排序,请注意reverse()通常只能在具有已定义顺序的QuerySet上调用(在model类的Meta中指定ordering或调用order_by()方法)。 < 9> distinct():

Spring4基础 学习笔记(5) ---- Spring与Dao

让人想犯罪 __ 提交于 2020-01-28 23:12:31
Spring与DAO: Spring与JDBC模板:为了避免直接使用JDBC而带来的复杂且冗长的代码,Spring提供了一个强有力的模板类:JdbcTemplate 来简化JDBC操作。并且,数据源DataSource对象与模板JdbcTemplate对象均可通过Bean的形式定义在配置文件中,充分发挥了依赖注入的特性。 依赖jar:使用c3p0数据库连接池,Spring的JDBC.jar,Spring的事务jar,数据库驱动 一般的Service层访问Dao层: StudentServiceImpl实现-------->IStudentService接口 StudentServiceImpl 持有 Dao的引用 ,由容器注入,Impl的实现依赖于Dao(调用Dao接口的方法) Dao接口定义了访问DB的方法 定义Dao的实现类,将来注入StudentServiceImpl的类 使用JdbTemplate,Dao实现类 继承 JdbcDaoSupport,JdbcTemplate为该类的成员变量 增删改统一使用update方法: @Override public void insertStudent(Student student ) { String sql = "insert into student(name,age) values(?,?)" ; // TODO Auto