热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mysql注入问题简单的替换value的值能否防注入

$content=str_replace(\,\\,$content);$content=str_replace(,\,$content);

$cOntent=str_replace("\","\\",$content);

$cOntent=str_replace("'","\'",$content);

我现在是这样的 先把变量的 单引号 和 反斜杠替换一下

再正常组装sql

insert into xxx(xxx)values('{$content}')

这样能否确保不被注入?

如果不能 还可以怎么注入呢?

回答

可以使用数据库的orm框架,然后用变量的方式。

Java的话可以使用mybatis,

C#的话可以使用efcore,dapper等。

mybatis的使用方式

QueryWrapper

queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(Article::getId, id);
Article article =articleMapper.selectOne(queryWrapper);
if (article == null) {
throw new BizException("文章不存在");
}

C#中的使用方式

using (IDbConnection cOnn= DBConfig.GetSqlConnection())
{
string sql = @"SELECT * FROM `t_article_type` WHERE `Id`=@Id";
return await conn.QueryFirstOrDefaultAsync(sql, new { Id = id });
}

参考:


  • 《Spring Boot 实战纪实(附源码)》



推荐阅读
author-avatar
sdauilk_299
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有