文章详情页
mysql - 看这条sql有可能被注入吗
浏览:305日期:2022-06-20 14:00:12
问题描述
SELECT * FROM table1 where condition1=1 ORDER BY $sortField$ $sortOrder$ limit 0,20
$sortField$和$sortOrder$可以写任意sql
这条sql有被注入的风险吗
问题解答
回答1:只要你直接用变量来生成sql语句,都有被注入的风险
SELECT * FROM table1 where condition1=1 ORDER BY $sortField$ $sortOrder$ limit 0,20
sortField='id'sortOrder='; drop table users; --'
你的sql就会变成
SELECT * FROM table1 where condition1=1 ORDER BY id; drop table users; -- limit 0,20回答2:
你考虑问题的方向不正确。
防注入的正确做法是使用官方驱动的参数模式,因为只有官方自己的东西,才知道应该怎样避免被注入。
如果你自己写SQL,就算现在不被注入,说不定这条链路中所涉及的组件,在以后其中某个组件发生变化,那就会有被注入的风险。
回答3:你直接可以拿sqlmap测试一下,它的引擎还是很强大的
相关文章:
1. javascript - webpack less文件单独打包出错2. Android 高德地图如何实现拖动平移地图时地图上的小图标不动?3. PHP5.5.38.0 Apache2.4.23.0服务崩溃 系统日志php_curl.dll模块报4. Docker for Mac 创建的dnsmasq容器连不上/不工作的问题5. javascript - 在一个a标签内添加了一个单击事件,想在时间里面给这个a标签添加类样式6. 按照视频操作下载不了laravel框架7. Python 3.5,斐波数列, a,b = 0,18. 怎么php怎么通过数组显示sql查询结果呢,查询结果有多条,如图。我要forsearch里面echo9. javascript - UglifyJsPlugin打包的时候把css html也压缩了10. java - bin目录有什么特殊含义吗?为什么可执行文件都放在bin目录?
排行榜

网公网安备