sqlmap中##和$$的区别
2024-10-21 07:43:51
一. 主要区别
#a# //解析sqlmap配置文件时自动加单引号,即'a'
$a$ //解析sqlmap配置文件时不加单引号,即a 如果传进来的条件需要order by的话,那一定用第二种
#是把传入的数据当作字符串,如#field#传入的是id,则sql语句生成是这样,order by "id",这当然会报错..
$传入的数据直接生成在sql里,如#field#传入的是id,则sql语句生成是这样,order by id, 这就对了.
二. 解析
在Ibatis中我们使用SqlMap进行Sql查询时需要引用参数,在参数引用中遇到的符号#和$之间的区分为,#可以进行与编译,进行类型匹配,而$不进行数据类型匹配,例如:
select * from table where id = #id# ,其中如果字段id为字符型,那么#id#表示的就是'id'类型,如果id为整型,那么#id#就是id类型。
select * from table where id = $id$ ,如果字段id为整型,Sql语句就不会出错,但是如果字段id为字符型,那么Sql语句应该写成 select * from table where id = '$id$'
三.用途的区别
1.#方式能够很大程度防止sql注入.
2.$方式无法防止sql注入.
3.$方式一般用于传入数据库对象.例如传入表名.
4.一般能用#的就别用$.
最新文章
- MongoDB【第三篇】MongoDB基本操作
- 批量修改一张表格的多个sheet名
- 转载 网页打印时设置A4大小
- 基于mapreduce的大规模连通图寻找算法
- 写过的HTML标签(一)
- FusionChart 导出图片 功能实现(转载)
- PHP内核变量存储
- 关于mysql使用命令行时出现Data too long for column的解决方案:
- [BZOJ1269] [AHOI2006] 文本编辑器editor (splay)
- 二维条码扫描模组在肯德基KFC的无纸化点餐解决方案
- python +selenium识别不来click事件,出现报错
- 理解 OAuth2.0
- Docker安装配置MongoDB并使用Robo 3T在局域网连接
- 关于dp(背包)
- Hive 和 Mysql
- 练习|Django-单表
- JQUERY验证上传文件大小
- Linux动态库(.so)搜索路径
- .NET后台访问其他站点代码整理
- SQL中动态进行行转列
热门文章
- SQL SERVER 查找锁信息
- 日笔记--C# 从数据库取表格到DataGridView---json传输
- DevExpress GridControl使用教程:之 添加 checkbox 复选框
- .Net MVC5路由机制与扩展
- ClamAV学习【2】——clamscan入口函数浏览
- lambda 、 map 、filter 、reduce 及 reversed 常用函数
- 数论入门2——gcd,lcm,exGCD,欧拉定理,乘法逆元,(ex)CRT,(ex)BSGS,(ex)Lucas,原根,Miller-Rabin,Pollard-Rho
- redis5.0.4-cluster集群搭建及jedis客户端操作
- SQL注入不简单?那是你没有懂它的原理~
- Android跳转淘宝、京东APP商品详情页