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

北京怀柔网站建设公司制作网页游戏的软件

北京怀柔网站建设公司,制作网页游戏的软件,南浔住房和城乡建设局网站,开发一个购物app需要多少钱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.hkea.cn/news/14393313/

相关文章:

  • 建网站的公司08服务器做网站
  • 企业网站建设思路推销网站话术
  • 旅游景点网站设计太原西北建设有限公司网站
  • 提供中山精品网站建设建设网站的好处和优点
  • 个人建设网站需要什么证件吗百度手机应用市场
  • 昆明建设工程质量备案在哪个网站小学文化学网站开发
  • 郑州做网站优化电话新网站如何推广
  • 网站建设shundeitphp和wordpress
  • 怎样做运营一个网站做微商网站的软文
  • 天津河西做网站vps网站无法通过ip访问
  • 网站需求说明佛山网站建设推广服务
  • 免费seo网站诊断免费flashfxp上传了网站
  • 在哪里可以改动网站标题深圳做网站小程序
  • 特乐网站建设企业宣传软文
  • 免费建站网站有哪些网站收录最好的方法
  • 找手工活做注册网站水果网络营销方案
  • 专做化妆品的网站wordpress的mip改造
  • 用vis做的简单网站wordpress 招商系统
  • flash网站代码下载微信公众号怎么做商城
  • 商城类网站建设多少钱微信 网站 织梦
  • 网站建设及优化的策划书中国兰州
  • 信息服务类网站建设方案聚名网评价
  • 网站备案前置审批表格wordpress 自动提交表单
  • 太原网站设计费用官方网站弹幕怎么做
  • 双语网站建设公司简单的电影网站模板
  • 视频播放网站怎么做电脑培训零基础培训班
  • 上海装修做网站的倒闭了storefront wordpress
  • 建设项目前期收费查询网站3d建模一般学多久
  • 个人网站的留言板数据库怎么做wordpress媒体库注册
  • 事业单位网站后台建设方案好的案例展示网站