12306的漏洞暴出来后,很多人在吐槽写得有多烂,sql不能用like %%。本人不是工程师,有点看不懂,请问具体错在哪里,怎么样写才对
因为like语句在sql执行时,需要将变量原样输出,会有sql注入的风险。例如:select count(1) from ticket where city like $city;假设这样一句sql,你可能会把“%北京%”,“%上海%”当作city传进去执行。但是你也可以将"%北京%; delete * from ticket;"当作参数传入进去,因为是字符串原样生成sql语句然后执行,你可以想象这样的参数会有什么危害。至于@彭望 说的问题,是效率问题,应该用别的索引方案代替like语句,而非风险问题。当然如果没做查询控制,可能会有DOS风险。
■网友
其实也不能说是不用like%%吧,应该是把条件再多限制一点,我特意去看了wordpress的代码,也是用的like做的。wordpress目录下wp-includes/query.php 2190行$search .= "{$searchand}(($wpdb-\u0026gt;posts.post_title LIKE \u0026#39;{$n}{$term}{$n}\u0026#39;) OR ($wpdb-\u0026gt;posts.post_content LIKE \u0026#39;{$n}{$term}{$n}\u0026#39;))";
■网友
like %%,可能被注入。
■网友
like %% 会进行全站无索引遍历,再具体一点 就是如果数据库有1000W数据,每次有like % %你就得从头跑到尾经过1000W条数据。所以说 税都交给一群**了。
推荐阅读
- 扼守“一地跨三国”的戍边民警:从大山走出来的三级警督
- 马蓉|马蓉又有新动态!“消失”107天后晒清纯美照,粉丝都没认出来
- 漏洞|家里有孩子的,一定不要忽略这个漏洞!警惕!同一小区8人确诊
- 汽车|排名出来了!这个汽车品牌排第一!
- 达内和传智播客培训机构出来的人才们,你们当初学好第一份工作是学校推荐的还是自己找的
- 隐秘而伟大|《隐秘而伟大》结尾有漏洞?全剧三处穿帮镜头,沈青禾占两处
- 贾玲|贾玲爆肥后现身工作室,脸大到肉都溢出来了,身体健康引担忧
- 孩子|祸首就藏在家里餐桌上,父母还没察觉出来儿子14岁时停止长高
- 我有几个app点子,拉出来比较容易实现的一个和大家探讨,只差程序员(替你们说了)请问这个点子咋样
- 光明网|兰州:不介绍新学员 就不让你练车 ?驾校:确实存在管理漏洞,会监督教练处理退费问题
