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

安阳县崔家桥职业中专南岸网站关键词优化

安阳县崔家桥职业中专,南岸网站关键词优化,微网站如何做微信支付宝支付宝支付接口,凡客沙发官网1. SQL注入的原理: SQL注入的攻击行为是通过用户可控参数中注入了SQL语法,改变原有SQL结构,以下两种情况可以造成SQL注入: 1.使用字符串拼接的方式构造SQL语句 2.未对用户可控参数进行严格的过滤,便把参数内容拼接到…

1. SQL注入的原理:

SQL注入的攻击行为是通过用户可控参数中注入了SQL语法,改变原有SQL结构,以下两种情况可以造成SQL注入:

1.使用字符串拼接的方式构造SQL语句

2.未对用户可控参数进行严格的过滤,便把参数内容拼接到SQL语句中

2. SQL注入的危害

攻击者通过利用SQL注入漏洞,获取数据库的各种信息(如后台的账号密码),从而脱取数据库的内容(脱库);

特别的情况下还可以对数据库内容进行插入、修改、删除

如果数据库权限分配存在问题,或者数据库本身存在缺陷,攻击者可以通过SQL注入漏洞来直接获取webshell或服务器权限

3. SQL注入解决方案

3.1 使用预编译处理

  • #{}:预编译处理。
  • ${}:字符直接替换。
    预编译处理:MyBatis 在处理#{}时,会将 SQL 中的 #{} 替换为?号,使⽤ PreparedStatement
    的 set ⽅法来赋值。
    直接替换:是MyBatis 在处理 ${} 时,就是把 ${} 替换成变量的值。
    特别注意字符串使用 替换时需要加引号。使用 {} 替换时需要加引号。 使用 替换时需要加引号。使用可以处理关键字,比如我们sql的升序降序关键字,因为$符号是直接替换
<select id="getData" resultType="com.demo.get">select * from member order by id ${str};
</select>

其他建议:

  1. 严格确定数据的类型,比如入参是数字,数据库则必须使用int类型来存
  2. 规定数据长度,能在一定程度上防止sql注入
  3. 严格限制数据库权限,能最大程度减少sql注入的危害
  4. 避免直接响应一些sql异常信息,sql发生异常后,自定义异常进行响应

3.2 模糊查询的解决方案

如果业务场景中需要使用模糊查询,不能使用如下形式:

select * from member where username like '%${str}%';

而是应该是如下形式:

select * from member where username like CONCAT('%',#{str},'%');

3.3 过滤关键词

/*** 关键词校验* @param str* @return*/
protected static boolean sqlValidate(String str) {// 统一转为小写str = str.toLowerCase();// 过滤掉的sql关键字,可以手动添加String badStr = "'|and|exec|execute|insert|select|delete|update|count|drop|*|%|chr|mid|master|truncate|" +"char|declare|sitename|net user|xp_cmdshell|;|or|-|+|,|like'|and|exec|execute|insert|create|drop|" +"table|from|grant|use|group_concat|column_name|" +"information_schema.columns|table_schema|union|where|select|delete|update|order|by|count|*|" +"chr|mid|master|truncate|char|declare|or|;|-|--|+|,|like|//|/|%|#|" + "in|group|net|user|between|concat|=|>|<|xor|`|&|!|^|~";//另外"与|这两个符号也推荐过滤String[] badStrs = badStr.split("\\|");for (int i = 0; i < badStrs.length; i++) {if (str.indexOf(badStrs[i]) >= 0) {return true;}}return false;
}

过滤关键词可能会有一些绕过的攻击方案,目前以上的过滤关键词没有绕过的方案。

3.4 框架引入的SQL注入问题

在开发项目过程中,可能会存在一些框架引入的安全问题,最好的方案就是按照官方的指引,升级最新的解决安全漏洞的版本。
比如说JeecgBoot 最近就存在sql注入的安全漏洞。

一、漏洞描述
表字典存在 SQL 注入漏洞,远程攻击者可利用该漏洞攻击系统数据库,获取敏感数据或者进行数据库违规操作。漏洞危害等级:高危

二、影响范围
jeecgboot 版本 < 3.5.4
三、修复方案
升级至3.6.1版本,不兼容的请自行调整。

http://www.yayakq.cn/news/990626/

相关文章:

  • 个人主页网站设计代码全球华设计大赛
  • 网站娱乐一条龙搭建wordpress不能文件名访问
  • 东莞网站设计知名 乐云践新wordpress 登录后可看
  • 有没有专门做教育培训的网站陈铭生
  • 杭州网站建站平台网络公司给我做网站我有没有源代码版权吗
  • 网站前端设计外包公司基于mvc的jsp网站开发
  • 网页设计作业简单seo做的很好的网站
  • 帮企业建设网站销售wordpress 英文 企业网站模板
  • 专业的上海网站建设公司安化网站建设
  • 张店网站建设价济南网站微信
  • 看板娘 wordpress临安网站seo
  • 南京一站式工程装饰装修网站百度广告联盟入口
  • 营口房地产网站开发企业级建站
  • 购物网站可行性分析报告dz网站地图怎么做
  • 新手怎么开始做电商四川网站建设seo
  • 建站哪家好论坛做网站怎么接活
  • node做网站优势网站制作交流论坛
  • 建设项目竣工验收公告网站wordpress公众号涨粉
  • 中石油第六建设公司网站深圳到北京
  • 网站公司的利润在哪里合肥网络公司排名
  • 青岛网站建设哪家公司好怎么做短链接网站
  • 汕头网站制作公司价格怎么备案域名
  • 江苏省句容建设局网站綦江网站建设公司
  • 个人购物网站备案磁县网站设计公司
  • 平顶山建站公司安徽省建设厅八大员报名网站
  • 个性化WordPress网站织梦网站后台管理
  • 网站帮助中心设计dedecms网站入侵
  • 简述网站规划的任务网站建设前的分析第一小节内容
  • 电脑网站设计制作网站每年的维护费
  • 济南微信网站建设图片站手机网站怎么做