水木社区手机版
首页
|版面-编程技术(Programming)|
新版wap站已上线
返回
1/1
|
转到
主题:使用mybatis就不会有注入漏洞么?
2楼
|
canper
|
2021-04-26 09:33:12
|
展开
虽然确实有这回事,但印象中驱动会帮你转码。不过我不确定,时代太久远了。
【 在 javafish (这不是一个昵称) 的大作中提到: 】
: 上古时代mysql 的驱动据说会用字符串拼接实现prepareStatement……
--
FROM 61.140.77.*
4楼
|
canper
|
2021-04-26 10:58:39
|
展开
别说#$点问题了,用了mybatis还拼sql的也大把
【 在 z16166 (Netguy) 的大作中提到: 】
: 还得码农要用对吧。
: 1、比如#和$有区别。#{}是预编译,可以;${}不能。
:
https://aijishu.com/a/1060000000008622
: ...................
--
FROM 61.140.77.*
6楼
|
canper
|
2021-04-26 11:17:23
|
展开
另外用#还有内存溢出的问题,这样是属于误用引起的,虽然mybatis内部可以用lru来解决这个问题,不过我想了一下,如果是我来做我也不想去解决这个问题。
【 在 z16166 (Netguy) 的大作中提到: 】
: 对啊,如果最终传给Prepared Statement的createStatement()的语句也是用用户输入拼出来的话,
: 即使是用了Prepared Statement,也救不了。
: 典型误用:
: ...................
--
FROM 61.140.77.*
8楼
|
canper
|
2021-04-26 11:21:22
|
展开
这个还好,拼进去的表名也不会是前端传过来的
【 在 oldwatch (一条叫java的鱼◎城内风光独好) 的大作中提到: 】
: 现在很大一个坑就是放着表分区不用土法分表,table_1,_2,_3....
: 逼你手工拼字符串
: 也不知道哪儿流行起来的
: ...................
--
FROM 61.140.77.*
10楼
|
canper
|
2021-04-26 11:41:56
|
展开
这个一般问题不大,也就多查一点数据,用到like查询的一般不是关键查询项,不至于产生越权问题,顶多是数据和用户预期不一致。
【 在 z16166 (Netguy) 的大作中提到: 】
: 补充一下:
: 即使用了prepared statement,也防止不了sql wildcard attack,需要自己过滤wildcard字符。
--
FROM 61.140.77.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版