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

重庆网站建设外包公司排名蓝色织梦cms企业网站模板全站源码

重庆网站建设外包公司排名,蓝色织梦cms企业网站模板全站源码,职业生涯规划ppt免费模板,网站后台浏览器1 原理 没有正确的对用户的输入进行检查#xff0c;将用户的输入以拼接的方式带入到SQL语句中#xff0c;导致SQL注入。 2 产生SQL注入的原因 2.1 JDBC拼接不当造成SQL注入 前置知识#xff1a; JDBC执行SQL语句的两种方式#xff1a; PrepareStatement#xff1a;会对…1 原理 没有正确的对用户的输入进行检查将用户的输入以拼接的方式带入到SQL语句中导致SQL注入。 2 产生SQL注入的原因 2.1 JDBC拼接不当造成SQL注入 前置知识 JDBC执行SQL语句的两种方式 PrepareStatement会对sql语句进行预编译效率和安全性更好。支持使用对变量位进行占位。Statement每次执行时都需要编译 典型的错误拼接方式 String sqlselect * from user where id req.getParameter(id); Statement st con.createStatement(); ResultSet rs st.executeQuery(sql);正确的拼接方式使用占位符 String sqlselect * from user where id?; PreparedStatement pstt con.PreparedStatement(sql); pstt.setInt(1,Integer.parseInt(req.getParameter(id))); ResultSet rs pstt.executeQuery();防御使用PreparedStatement,且不要把用户输入的东西拼到SQL语句里。 2.2 框架使用不当造成sql注入 ① MyBatis框架 SQL传参的两种方式#{parameter}、${parameter} 思想将SQL语句编入到配置文件中避免SQL语句在Java程序中大量出现方便后续对SQL语句的修改与配置。 #与$的区别 #{}可以试用进行预编译安全推荐使用。 eg:如下代码 select idgetUsername resultTypecom.zlong.bean.Userselect id,name,age from user where name #{name} /select其中将#{name}先使用占位进行预编译然后再传参不存在sql注入的问题。 ${}直接拼接到语句中不安全 eg:如下代码 select idgetUsername resultTypecom.zlong.bean.Userselect id,name,age from user where name ${name} /select该代码直接将用户的值拼接到sql语句中可以触发恶意的代码。 ② Hibernate框架 Hibernate框架是持久性API因此是对持久化类的对象进行操作而不是直接对数据库语句由Hibernate进行解析。它是将JAVA类映射到数据库表中从JAVA数据类型映射到SQL数据类型。直接拼接可能会导致注入漏洞。 使用以下HQL参数绑定的方法(预编译)避免注入漏洞 位置参数 String parameter z1ng; QueryUser query session.createQuery(from com.z1ng.bean.User where name ?1,User.class); query.setParameter(1,parameter);命名参数 String parameter z1ng; QueryUser query session.createQuery(from com.z1ng.bean.User where name :name,User.class); query.setParameter(name,parameter);命名参数列表 Liststring names Arrays.asList(z1ng,z2ng); QueryUser query session.createQuery(from com.z1ng.bean.User where names in (:names),User.class); query.setParameter(names,names);类实例Bean user1.setName(z1ng); QueryUser query session.createQuery(from com.z1ng.bean.User where name :name,User.class); query.properties(user1);参数绑定的方法构造SQL语句Hibernate支持原生SQL语句执行 正确的参数绑定方法 QueryUser query session.createNativeQuery(select * from user where name :name); query.setParameter(name,parameter);错误的拼接方法 QueryUser query session.createNativeQuery(select * from user where name parameter);2.3 防御不当造成SQL注入 预防SQL注入漏洞一般正确使用预编译就可以但是存在特殊情况不可以使用预编译sql注入的order by后的参数赋值就不能使用预编译进行防止SQL注入。故除预编译之外需要对用户的输入进行严格的过滤包括参数类型参数格式。
http://www.lakalapos1.cn/news/53301/

相关文章:

  • wordpress手机版网站广告设计专业需要学什么
  • 山东专业的制作网站保定哪里有做网站的
  • 企业集团网站建设方案网站建设面试试题
  • 没备案的网站百度收录asp网站怎么验证到百度站长
  • 东莞网站关键词优化排名公司介绍的ppt经典介绍
  • 前端网站开发培训哪个网站建设公司
  • No家电网站建设海淀企业网站建设
  • 对手网站分析桂林两江四湖船票官网
  • 58做网站联系电话江阴网络公司做网站
  • 电商网站制作项目描述个人网站域名取名
  • 网站建设 排行学做网站视频论坛
  • 旅游网站色彩搭配一个网站建设需要多少人力
  • 北京外包网站网站建设与推广销售户话术
  • 个人电子商务网站建设学院网站建设服务招生宣传
  • 网站代理打开天津seo霸屏
  • 百度上开个网站怎么做天眼查企业查询官网网页版
  • 深圳网站seo地址衣服搭配网站建设
  • 做一个网上商城网站建设费用多少安徽做网站电话
  • 高端创意网站建设个人网页制作成品欣赏
  • 模板网站也可以做优化工作心得体会简短的
  • html5 js全屏滑动网站源码购物网站用模板好不好
  • 校园论坛网站建设论文要塑造什么品牌加快建设博物馆群
  • 诸塈市建设局网站响应式布局网站尺寸
  • 网站空间域名每年都得交吗如何查看网站做没做竞价
  • 音乐网站怎么做无线增值业务域名和网站名要一样吗
  • 沈阳建设厅官方网站怎样上传wordpress模板
  • 高明网站建设网站运营与管理试卷
  • 什么是营销型的网站推广电脑页面设计怎么弄
  • 做网站建设有哪些公司好做物流的用什么网站配货
  • 推荐几个高端大气上档次网站百度招聘