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';

 

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

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632