命令注入

命令注入漏洞是指 Web 应用没有对用户可控的参数进行有效过滤,攻击者可以构造恶意参数拼接到命令中,从而执行任意命令。

开发建议:

  • 对用户输入的数据(如 ;、|、&等)进行过滤或转义。

SQL 注入

SQL 注入是指 Web 程序代码中对于用户提交的参数没有进行有效过滤,就直接拼接到 SQL 语句中执行,导致参数中的特殊字符打破了 SQL 语句原有的逻辑,黑客可以利用这个漏洞执行任意的 SQL 语句。

开发建议:

  1. 使用数据库提供的参数化查询来进行数据库操作,不允许直接通过拼接字符串的方式来合成 SQL 语句。
  2. 如果存在部分情况需要通过拼接的方式来合成 SQL,拼接的变量必须要经过处理:
    • 对于整数,需要判断变量是否为整数类型。
    • 对于字符串,需要对单引号、双引号等做转义处理。
  3. 避免 Web 应用显示 SQL 的报错信息。
  4. 保证 Web 应用里每一数据层的编码统一。