跳到主要内容

SQL注入

根本解决办法

  • SQL 文全部使用占位符实装
    • SQL 里有变量的地方一般使用占位符来实装。占位符有静态和动态两种办法。使用的比较多的是静态占位符,也就是 SQL 的 ISO/JIS 标准里的 Prepared Statement。
  • 连接字符串要进行转义
  • 不要直接在参数里直接指定 SQL 有的网站直接在 hidden 参数里写 SQL,这是不可取的。

保险对策

  • 数据库返回的错误信息不要直接显示在浏览器上
    • 数据库返回的错误信息一般会有数据库种类,引发错误的 SQL 原文等信息。这些信息会被攻击者不怀好意地利用。
  • 给数库账号合理的权限 只给应用所使用的数据库账号最少的权限。