写SQL直接拼接用户参数,被人拖走管理员账号,一周广告收入全换了他的推广链接

5年前 (2021-10-14)阅读1回复0
genmulu
genmulu
  • 管理员
  • 注册排名1
  • 经验值27950
  • 级别管理员
  • 主题5590
  • 回复0
楼主

刚学PHP那会我写文章详情接口,图省事,直接把前端传过来的id拼到SQL语句里,大概就是把用户传的id直接拼进查询语句,当时根本不知道SQL注入是什么,测试的时候传个正常的文章id,接口正常返回文章内容,我就觉得完事了。结果过了一周,我登后台看广告位,发现我挂的联盟广告全没了,换成了别人的推广链接,查收入直接少了两百多块,这才反应过来后台管理员账号密码已经被人拿走了。 翻日志才发现,有人在我接口里传了恶意的查询字符串,直接把我管理员表的账号密码哈希全查出来了,他用工具破解出明文密码,登后台把我广告全换了。我当时整个人都懵了,这漏洞我之前压根就不知道有,就因为我图省事直接拼字符串,人家五分钟就能把我后台摸透。 从那之后我写任何SQL,再也不直接拼接用户传的参数,全用PDO预处理,写SQL的时候先写占位符,查询文章的时候用问号代表参数位置,然后把用户传的id绑上去,数据库自动转义特殊字符,哪怕用户传进来一堆单引号、联合查询语句,也会被当成普通字符串处理,根本构不成注入。就这么改完之后,我之前那些漏洞全堵上了,再也没出现过管理员账号被拖的事。 现在我看新手写代码,只要看到直接拼接用户传来的get、post参数到SQL里,我立刻就让他改成预处理。很多新手觉得,我就做个小站,谁会专门来注入我,其实根本不是针对你,网上有现成的扫描脚本,自动扫全网的这种注入漏洞,扫到就来拖库、换广告,你越不把它当回事,越容易被脚本盯上。 那两百多块的损失,给我上了最贵的一堂安全课,从那之后不管写什么接口,只要涉及数据库查询,全用预处理,绝对不碰字符串拼接。就这么一个基础安全习惯,比你装十个安全插件都管用。

本站源码来源于网络收集修改或者交换,甚至可能并非原创,如遇未经考证信息需持审慎态度。若有疑问,可联系本站处理。

本文地址:https://www.genmulu.cn/genmulu/2013.html

0
回帖

写SQL直接拼接用户参数,被人拖走管理员账号,一周广告收入全换了他的推广链接 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息