SQL注入详解(扫盲篇)
SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编程时的疏忽,通过SQL语句,实现无帐号登录,甚至篡改数据库。下面这篇文中就SQL注入进行一个深入的介绍,感兴趣的朋友们一起来看看吧。
SQL注入攻击的总体思路
1.寻找到SQL注入的位置
2.判断服务器类 ...
Mybatis查询延迟加载详解及实例
Mybatis查询延迟加载详解及实例
1.1 启用延迟加载
Mybatis的延迟加载是针对嵌套查询而言的,是指在进行查询的时候先只查询最外层的SQL,对于内层SQL将在需要使用的时候才查询出来。Mybatis的延迟加载默认是关闭的,即默认是一次就将所有的嵌套SQL一并查了将对象所有的信息都查询出来。开启延迟 ...
MySQL与Oracle SQL语言差异比较一览
数据类型
编号ORACLEMYSQL注释1NUMBERint / DECIMALDECIMAL就是NUMBER(10,2)这样的结构INT就是是NUMBER(10),表示整型;
MYSQL有很多类int型,tinyint mediumint bigint等,不同的int宽度不一样2Varchar2(n)varchar(n) 3DateDATATIME日期字段的处理
MYSQL日期 ...
深入讲解SQL中的字符串拼接
一、概述
相信大家在日常开发中,在sql语句中经常需要进行字符串拼接,以sqlserver,oracle,mysql三种数据库为例,因为这三种数据库具有代表性。
sqlserver:
?
1
select '123'+'456';
oracle:
...
MySQL与Oracle数据类型对应关系(表格形式)
MySQL与Oracle两种数据库在工作中,都是用的比较多的数据库,由于MySQL与Oracle在数据类型上有部分差异,在我们迁移数据库时,会遇上一定的麻烦,下面介绍MySQL与Oracle数据库数据类型的对应关系。一、常见数据类型在MySQL与Oracle数据库中的表现形式
...
碾压ES和MongoDB,RedisJson横空出世!
目录
查询引擎
①加载优化
②全文搜索优化
和其他框架的对比
①基准测试
②100% 写入基准
③100% 读取基准
④混合读/写/搜索基准
⑤完整延迟分析
⑥MongoDB 与 ElasticSearch 与 RedisJSON* 的延迟分析
⑦ElasticSearch 与 RedisJSON 的延迟分析
如何开始
图片来自 包图网
下面是核心的报告内容,先上结论:
...
数据库:评估安全风险四个要点
互联网时代,不论是个人还是组织,都将数据视为一项重要的资产。为了便于存储、管理,企业常常会为各项数据建立一个数据库,如果没有做好安全风险防护,一旦数据库被攻占,企业将迎来很大的打击。为此,对数据库进行安全风险评估,对保护数据至关重要。
1、使用额外的安全措施
如果你的数据库,只有固定的安全防御 ...
利用reverse索引优化like语句的方法详解
前言
在有一些情况下,开发同学经常使用like去实现一些业务需求,当使用like时,我们都知道使用like 前%(like ‘%111')这种情况是无法使用索引的,那么如何优化此类的sql呢,下面是一个案例。
原sql如下:
pcc_cust_infonew 表索引如下
执行设计如下:
这里可以看到sql执行3.96秒,执行计划中也可以 ...
有效防止SQL注入的5种方法总结
sql注入入门
sql 注入是一类危害极大的攻击形式。虽然危害很大,但是防御却远远没有xss那么困难。
sql 注入漏洞存在的原因,就是拼接 sql 参数。也就是将用于输入的查询参数,直接拼接在 sql 语句中,导致了sql 注入漏洞。
演示下经典的sql注入
我们看到:select id,no from user where id=2;
如果该语句是 ...
关于SQL注入绕过的一些知识点
一、 绕过waf思路
从第一步起,一点一点去分析,然后绕过。
1、过滤 and,or
?
1
2
3
preg_match('/(and|or)/i', $id)
Filtered injection: 1 or 1 = 1 1 and 1 = 1
...
关于SQL注入中文件读写的方法总结
前言
SQL注入有直接sql注入也有文件读写时的注入了我们这篇文章介绍的是SQL注入中的文件读写这一块的内容,具体的一起来看看。
一、MySQL
读文件
常见的读文件,可以用16进制代替字符串
?
1
2
3
4
...
mybatis映射XML文件详解及实例
mybatis映射XML文件
一个简单的映射文件:
?
1
2
3
4
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "h ...
mybatis 项目配置文件实例详解
mybatis项目配置
首先这事一个简单的mybatis项目配置文件:
?
1
2
3
4
5
6
7
8
9
10
11
12 ...
MySQL与Oracle差异比较之三 函数
函数
编号
类别
ORACLE
MYSQL
注释
1
数字函数
round(1.23456,4)
round(1.23456,4)
一样:
ORACLE:select round(1.23456,4) value from dual
MYSQL:select round(1.23456,4) value
2
abs(-1)
...
MySQL与Oracle差异比较之二 基本语法
基本语法
编号
类别
ORACLE
MYSQL
注释
1
变量的声明方式不同
li_index NUMBER := 0
DECLARE li_index INTEGER DEFAULT 0
1. mysql 使用DECLARE定义局部变量.
定义变量语法为: DECLARE var_name[,...] type [DEFAUL ...
MySQL与Oracle 差异比较之一数据类型
数据类型
编号
ORACLE
MYSQL
注释
1
NUMBER
int / DECIMAL
DECIMAL就是NUMBER(10,2)这样的结构INT就是是NUMBER(10),表示整型;
MYSQL有很多类int型,tinyint mediumint bigint等,不同的int宽度不一样
2
Varchar2(n)
...
MySQL与Oracle 差异比较之六触发器
触发器
编号
类别
ORACLE
MYSQL
注释
1
创建触发器语句不同
create or replace trigger TG_ES_FAC_UNIT
before insert or update or delete on ES_FAC_UNIT
for each row
create trigger `hs_esbs`.`TG_INSERT_ES_FAC_U ...
MySQL与Oracle差异比较之五存储过程&Function
存储过程&Function
编号
类别
ORACLE
MYSQL
注释
1
创建存储过程语句不同
create or replace procedure P_ADD_FAC(
id_fac_cd IN ES_FAC_UNIT.FAC_CD%TYPE) is
DROP PROCEDURE IF EXISTS `SD_USER_P_ADD_USR`;
create pr ...
MySQL与Oracle 差异比较之四条件循环语句
循环语句
编号
类别
ORACLE
MYSQL
注释
1
IF语句使用不同
IF iv_weekly_day = 'MON'THEN
ii_weekly_day := 'MON';
ELSIF iv_weekly_day = 'TUE' THEN
ii_weekly_day := 'TUE';
END IF;
IF ...
MySQL与Oracle 差异比较之七 其它
其它
编号
类别
ORACLE
MYSQL
注释
1
内连接的更改
1、
select a.*, b.*, c.*, d.*
from a, b, c, d
where a.id = b.id
and a.name is not null
and a.id = c.id(+)
and a.id = d.id(+)
...