@@ -132,45 +132,13 @@ http://localhost:8080/xxe/DocumentBuilder_xinclude?xml=%3C%3fxml+version%3d%221.
132132
133133### POC
134134
135- 访问
135+ 访问` http://localhost:8080/sqli/jdbc?id=1' or 'a'='a ` 返回 ` joychou: 123 wilson: 456 lightless: 789 ` 。
136136
137- ```
138- http://localhost:8080/sqli/jdbc?name=joychou' or 'a'='a
139- ```
140-
141- 返回
142- ```
143- joychou: 123 wilson: 456 lightless: 789
144- ```
145-
146- 正常访问
147- ```
148- http://localhost:8080/sqli/jdbc?name=joychou
149- ```
137+ 正常访问` http://localhost:8080/sqli/jdbc?id=1 ` 返回` joychou: 123 `
150138
151- 返回
152-
153- ```
154- joychou: 123
155- ```
156- ### 数据库配置
139+ ### 数据库表数据SQL
157140
158141``` sql
159- /*
160- Navicat Premium Data Transfer
161-
162- Source Server : localhost
163- Source Server Type : MySQL
164- Source Server Version : 80012
165- Source Host : localhost:3306
166- Source Schema : sectest
167-
168- Target Server Type : MySQL
169- Target Server Version : 80012
170- File Encoding : 65001
171-
172- Date: 22/08/2018 21:09:57
173- */
174142
175143SET NAMES utf8mb4;
176144SET FOREIGN_KEY_CHECKS = 0 ;
@@ -182,23 +150,27 @@ DROP TABLE IF EXISTS `users`;
182150CREATE TABLE `users ` (
183151 ` name` varchar (255 ) NOT NULL ,
184152 ` password` varchar (255 ) NOT NULL ,
185- ` isAdmin` varchar (255 ) NOT NULL
186- ) ENGINE= InnoDB DEFAULT CHARSET= utf8mb4 COLLATE= utf8mb4_0900_ai_ci;
153+ ` isAdmin` varchar (255 ) NOT NULL ,
154+ ` id` int (10 ) NOT NULL AUTO_INCREMENT,
155+ PRIMARY KEY (` id` )
156+ ) ENGINE= InnoDB AUTO_INCREMENT= 4 DEFAULT CHARSET= utf8mb4 COLLATE= utf8mb4_0900_ai_ci;
187157
188158-- ----------------------------
189159-- Records of users
190160-- ----------------------------
191161BEGIN ;
192- INSERT INTO ` users` VALUES (' joychou' , ' 123' , ' 1' );
193- INSERT INTO ` users` VALUES (' wilson' , ' 456' , ' 0' );
194- INSERT INTO ` users` VALUES (' lightless' , ' 789' , ' 0' );
162+ INSERT INTO ` users` VALUES (' joychou' , ' 123' , ' 1' , 1 );
163+ INSERT INTO ` users` VALUES (' wilson' , ' 456' , ' 0' , 2 );
164+ INSERT INTO ` users` VALUES (' lightless' , ' 789' , ' 0' , 3 );
195165COMMIT ;
196166
197167SET FOREIGN_KEY_CHECKS = 1 ;
198168
169+
199170```
200171
201172### 说明
202173
203- SQL注入修复方式采用预处理方式,修复见代码。
204- Mybatis的` #{} ` 也是预处理方式处理SQL注入。
174+ SQL注入修复方式采用预处理方式,修复见代码。Mybatis的` #{} ` 也是预处理方式处理SQL注入。
175+
176+ 在使用了mybatis框架后,需要进行排序功能时,在mapper.xml文件中编写sql语句时,注意orderBy后的变量要使用${},而不用#{}。因为` #{} ` 变量是经过预编译的,${}没有经过预编译。虽然${}存在sql注入的风险,但orderBy必须使用` ${} ` ,因为` #{} ` 会多出单引号` '' ` 导致sql语句失效。为防止sql注入只能自己判断输入的值是否是否存在SQL。
0 commit comments