大家一起研究一下 SQL 注入的防范姿势

2016-06-11 10:01:35 +08:00
 wujunze
  1. 昨天晚上已经 11 点多的时间,一个朋友突然找我说她们公司的网站的漏洞被提交到 wooyun 了。(然后就跟妹子大概了解了一下漏洞的情况 PS :妹子是 php 程序员)
  2. wooyun 上提交了两处漏洞,1 处是 SQL 注入 (经过了解,她们公司的用的框架是 11 年的老框架,还是mysql_query()这些老的 mysql 函数) 另一处就是 cookie 的问题,妹子把用户的 uid,等敏感信息都写进 cookie 了,2333 。然后 php 处理业务逻辑的 uid 也是从 cookie 里面拿的,233333 (导致修改 cookie 后可以伪装成任意用户)
    3.我给她说了 SQL 注入的解决方案(第一种治标不治本的,用正则匹配 SQL 语句,过滤危险字符,关键字,转义符号,第二种方案,弃用 mysql 老函数,用 PDO 或者 mysqli)(cookie 那个地方的漏洞,我建议她把 uid 等敏感信息存在 session 里面,然后把 sessionID 加密后放在 cookie 里面)
    4.妹子最后说,她大概听懂了.改公司框架的 mysql 驱动是不太现实的,公司不会让她改的,那就只好用正则匹配 SQL 语句,过滤非法字符串了!
    5.我就去网上找了一些 SQL 语句过滤的函数 号称很好用的 SQL 过滤函数 知乎大婶们的回答

想跟 V 友们讨论一下 SQL 注入防范的姿势 大家有没有比较好用的 SQL 注入 过滤 SQL 语句的函数,分享一下,谢谢!

4572 次点击
所在节点    信息安全
25 条回复
Felldeadbird
2016-06-12 09:42:45 +08:00
上个安全狗,可以抵御大部分的注入了。
所有 SQL 的外部参数记得用 引号包含着。 然后结合 addslashes 使用。 基本可以安全了。只是这样做,可能会导致某些奇葩的数据 取出来时异常。
wujunze
2016-06-12 10:03:13 +08:00
@hylent
@Felldeadbird 先给妹子推荐过滤 SQL 语句吧 指标不本的解决方法
Felldeadbird
2016-06-12 10:29:29 +08:00
@wujunze 我刚才说的就是了。
Lcys
2016-06-12 10:50:44 +08:00
怕死 用 360webscan.php
RIcter
2016-06-15 08:28:03 +08:00
全面改用 PDO 吧,其他的 WAF 多多少少能绕过的。
目前一个难以绕过的 WAF 是 Discuz 的内置 WAF 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/284866

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX