• SQL防止注入工具类,可能用于SQL注入的字符有哪些


    SQL注入是一种攻击技术,攻击者试图通过在输入中注入恶意的SQL代码来干扰应用程序的数据库查询。为了防止SQL注入,你需要了解可能用于注入的一些常见字符和技术。以下是一些常见的SQL注入字符和技术:

    1. 单引号 '​:
    • 攻击者可能会尝试通过输入 ​​'​​ 来结束 SQL 查询语句中的字符串,然后添加自己的恶意代码。
    1. 双引号 "​:
    • 在某些数据库系统中,双引号也可以用于引用标识符,攻击者可能尝试通过输入 ​​"​​ 来影响查询。
    1. 分号 ;​:
    • 分号用于在SQL语句中分隔多个查询。攻击者可能尝试通过输入 ​​;​​ 来执行额外的SQL语句。
    1. 注释符 --​ 或 /* */​:
    • 攻击者可能尝试使用注释符 ​​--​​ 或 ​​/* */​​ 来注释掉原始查询的其余部分,然后添加自己的SQL代码。
    1. UNION 操作符:
    • UNION 操作符用于合并两个查询的结果集。攻击者可能尝试通过在输入中使用 UNION 操作符来获取额外的数据。
    1. OR 和 AND 操作符:
    • 攻击者可能尝试通过使用 ​​OR​​ 和 ​​AND​​ 操作符来改变查询的逻辑条件,以便绕过登录认证或获取不应该访问的数据。
    1. 特殊字符:
    • 攻击者可能尝试使用其他特殊字符,如 ​​%​​、​​_​​ 等,以影响 SQL 查询的模糊匹配或通配符匹配。

    为了防止SQL注入,强烈建议使用参数化查询或预处理语句,以确保用户输入的值不会直接拼接到SQL语句中。这样可以有效地防止注入攻击。此外,进行输入验证和过滤,只允许合法的字符输入,是增加应用程序安全性的另一种重要措施。

    1. public static void filterContent(String[] values) {
    2. String[] xssArr = xssStr.split("\\|");
    3. for (String value : values) {
    4. if (value == null || "".equals(value)) {
    5. return;
    6. }
    7. // 统一转为小写
    8. value = value.toLowerCase();
    9. for (int i = 0; i < xssArr.length; i++) {
    10. if (value.indexOf(xssArr[i]) > -1) {
    11. log.error("请注意,存在SQL注入关键词---> {}", xssArr[i]);
    12. log.error("请注意,值可能存在SQL注入风险!---> {}", value);
    13. throw new RuntimeException("请注意,值可能存在SQL注入风险!--->" + value);
    14. }
    15. }
    16. }
    17. return;
    18. }

  • 相关阅读:
    尚好房 05_二手房管理
    ReentrantLock替换synchronized解决多线程并发死锁,Java
    使用acme.sh配置https证书
    python基于PHP+MySQL的超市管理系统
    数据结构(c语言版) 顺序表
    《golang设计模式》第二部分·结构型模式-07-代理模式(Proxy)
    Python: 每日一题之第几个幸运数字
    R语言使用names函数为dataframe数据中的所有列重命名
    深入浅出Redis,这是我见过最好的Redis实践文档(PDF文档)
    微信小程序 java网上宠物用品商城系统springboot
  • 原文地址:https://blog.csdn.net/qq_31708763/article/details/136195725