当前位置: 首页 > wzjs >正文

电商网站分析报告怎么做网店怎么推广和宣传

电商网站分析报告怎么做,网店怎么推广和宣传,mac网页制作软件,工厂做哪个网站好一、核心概念 在 MyBatis 的 XML 映射文件中,有两种方式将参数拼接到 SQL 语句中: ${}:直接字符串拼接(文本替换),不处理特殊字符,存在 SQL 注入风险。#{}:预编译占位符&#xff0…
一、核心概念

在 MyBatis 的 XML 映射文件中,有两种方式将参数拼接到 SQL 语句中:

  • ${}:直接字符串拼接(文本替换),不处理特殊字符,存在 SQL 注入风险
  • #{}:预编译占位符(?),自动过滤特殊字符,能防止 SQL 注入

二、代码示例分析

以下是一个模糊查询的 MyBatis XML 配置和测试用例:

1. XML 映射文件
<select id="findByNameLike2" resultType="Emp">select * from emp where name like '${name}'
</select>
2. 测试用例
@Test
public void testFindByNameLike2() throws IOException {// 正常查询:传入 "%张%"mapper.findByNameLike2("%张%").forEach(System.out::println);// 生成SQL:select * from emp where name like '%张%'// 恶意输入:传入 "abc' or '1=1----"mapper.findByNameLike2("abc' or '1=1----").forEach(System.out::println);// 生成SQL:select * from emp where name like 'abc' or '1=1----'
}

三、${} 的 SQL 注入风险详解
1. 正常输入场景
  • 参数"%张%"
  • 生成 SQLselect * from emp where name like '%张%'
  • 效果:正确查询名字包含“张”的员工。
2. 恶意输入场景
  • 参数"abc' or '1=1----"
  • 生成 SQL
select * from emp where name like 'abc' or '1=1----'
  • 解析
    由于 '1=1' 是恒真条件,此 SQL 会返回所有员工数据,导致数据泄露。

四、#{} 的预编译机制
1. 使用 #{} 的修改版
<select id="findByNameLikeSafe" resultType="Emp">select * from emp where name like #{name}
</select>
2. 测试用例对比
@Test
public void testFindByNameLikeSafe() {// 正确用法:传入 "%张%"mapper.findByNameLikeSafe("%张%");// 生成SQL:select * from emp where name like ?// 恶意输入:传入 "abc' or '1=1----"mapper.findByNameLikeSafe("abc' or '1=1----");// 生成SQL:select * from emp where name like ?// 参数值:被转义为 "abc' or '1=1----"(视为普通字符串)
}
  • 效果:恶意参数会被视为整体字符串,无法改变 SQL 结构。

五、使用建议与最佳实践
1. 优先使用 #{}
  • 所有用户输入或外部参数必须使用 #{},尤其是 WHERE 条件中的值。
2. 谨慎使用 ${}
  • 适用场景:动态表名、动态列名等非用户输入场景。
  • 风险控制:若必须使用 ${},需手动过滤危险字符(如单引号 ')。
3. 模糊查询的正确写法
  • 安全方式:在参数中拼接 %,而非 SQL 中。
// Java 代码中处理
String name = "%" + userInput + "%";
mapper.findByNameLikeSafe(name);

六、总结
特性${}#{}
处理方式直接替换预编译占位符
SQL 注入风险高风险无风险
适用场景动态表名/列名用户输入、条件值
性能无额外解析预编译优化

始终遵循规则:用户输入必须通过 #{} 传递!

http://www.dtcms.com/wzjs/321087.html

相关文章:

  • 成交型网站倡导公司今天最新新闻报道
  • 安阳网站制作直通车关键词优化
  • 独立网站怎么做seoseo技术服务外包公司
  • 那种网站建设软件最好企业营销培训课程
  • 挂机宝 可以做网站今日小说排行榜
  • 建网站自学网络营销模式有哪些?
  • 陕西专业网站建设价格最新小组排名
  • 国家建设工程造价数据监测平台在哪个网站合肥建站公司seo
  • wordpress sensei插件seo做的比较好的公司
  • 网站备案到保定百度首页优化
  • 哪一家好seo网站管理
  • 针对餐饮公司推广做网站方法宁波seo网络推广主要作用
  • 山东最新疫情爆发北京seo代理公司
  • 网站页面设计布局广州新闻发布
  • 江苏建设人才网官网入口seo网站关键词排名软件
  • 官方网站建设情况说明培训机构排名全国十大教育机构排名
  • 做智能家居网站福州seo关键字推广
  • 九江建设局网站杭州seo排名优化
  • 网站数据统计怎么做关键词优化公司排名
  • 金融网站框架模板下载安装网络推广平台有哪些
  • 同仁微网站建设工作室淘宝网官方网站
  • 房地产企业网站建设网络营销策划公司
  • 无锡品牌网站建设武汉网络推广网络营销
  • 做关于网站的开题报告百度资源搜索引擎
  • 哪些外贸网站可以做soho网络推广方法怎么样
  • 做网站怎么每天更新内容天津谷歌优化
  • 海口网站建设方案推广怎么推广一个平台
  • avian wordpress惠州seo网络推广
  • 专业云南做网站网站发布与推广方式
  • 哪个网站做h5比较好推广方案的内容有哪些