xufulin2 2021-05-26 20:08 采纳率: 0%
浏览 73

MySQL在字符串精准匹配查询中使用binary关键字,是否可以彻底防止基于字符串的SQL注入?

CREATE TABLE tb_content(
    `id` BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    `content` CHAR(255) NOT NULL,
    INDEX index_content(content(255))
) AUTO_INCREMENT = 1 ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = DYNAMIC;

# Java后台处理过insert插入的字符串(保证没有注入需要的特殊符号)
INSERT INTO tb_content(content)
VALUES('666lalala');

# Java后台只做PrepareStatement处理,直接使用 binary关键字 精准匹配 查询数据库
SELECT
    *
FROM
    tb_content
WHERE
    content = BINARY '666lalala';
  • 写回答

2条回答 默认 最新

  • CSDN专家-sinJack 2021-05-26 20:19
    关注

    这个问题,自己测试一下比较真实。

    评论

报告相同问题?