前端参数效验防止sql注入的方法
最近做完项目时,甲方对系统有要过安全等保三级的要求,这里针对我所编写的模块遇到的前端代码扫描出现的sql注入问题,给出部分解决方案。
错误示例
请求api时,参数未加效验;
let _obj ={pageSize: pageSize,pageNum: pageNum,sort: sort,type:pharType,};return api.callApi("/navmark/sx_phar/list", _obj).then((res) => {dataList.value =setPharImg(res.data); data.cur_id="";});
此时扫描的错误为:
Web应用程序对用户输入数据的合法性没有进行判断和过滤,攻击者可以通过控制可控参数来构造不同的SQL语句来实现对数据库的任意操作。比如查询、删除,增加,修改数据等等,严重时还可以对操作系统执行命令。
正确操作
前端校验:
let _obj ={pageSize: pageSize,pageNum: pageNum,sort: sort,type:pharType,};let flag =checkSqlsIn(_obj);if(flag){proxy.$modal.msgError("存在非法输入");return}return api.callApi("/navmark/sx_phar/list", _obj).then((res) => {dataList.value =setPharImg(res.data); data.cur_id="";});//SQL注入常见字符
var sqlKeyWords = "select ,union ,asc ,desc ,in ,like ,into ,exec ,from ";
sqlKeyWords += ",update ,insert ,delete ,count ,asc( ,char( ,chr( ,drop ,table ,truncat ";
sqlKeyWords += ",mid( ,abs( ,= ,-- ,<script ,/script ";
sqlKeyWords += ",where ,join ,create ,alter ,cast ,exists ,; , or , and ,order by ,group by ";
//分割成数组
var sqls = sqlKeyWords.split(",");function checkSqlsIn(_obj) {let lxdInput = JSON.stringify(_obj);let invalid = false;let chkInput = (lxdInput + "").toLowerCase();let pos = -1;for (let i = 0, n = sqls.length; i < n; i++) {pos = chkInput.indexOf(sqls[i]);if (pos != -1) {invalid = true;break;}}return invalid;
}
对提交的参数进行合法化效验,上面的校验只是匹配了部分sql常见字符。其他的自行补充
后端校验:后端使用不同语言的可能校验方式可能有所区别,大概思路类似,要么预编译sql语句,要么先校验参数合法性。
前端参数效验防止sql注入的方法相关推荐
- mysql 8.0 自定义函数_PHP+Mysql防止SQL注入的方法(life)
这篇文章介绍的内容是关于PHP+Mysql防止SQL注入的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 我的官方群点击此处. 方法一: mysql_real_escape_str ...
- mysql 防注入 php_PHP+mysql防止SQL注入的方法小结
本文实例讲述了PHP+mysql防止SQL注入的方法.分享给大家供大家参考,具体如下: SQL注入 例:脚本逻辑 $sql = "SELECT * FROM user WHERE useri ...
- decimal转为string sql_PHP+Mysql防止SQL注入的方法
这篇文章介绍的内容是关于PHP+Mysql防止SQL注入的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 我的官方群点击此处. 方法一:[1] mysql_real_escape_ ...
- mysql简单防注入_mysql防止sql注入的方法
mysql防止sql注入的方法 发布时间:2020-08-25 14:07:29 来源:亿速云 阅读:98 作者:小新 这篇文章将为大家详细讲解有关mysql防止sql注入的方法,小编觉得挺实用的,因 ...
- java开发中推荐的防御sql注入方法_防御SQL注入的方法总结
SQL 注入是一类危害极大的攻击形式.虽然危害很大,但是防御却远远没有XSS那么困难. SQL 注入漏洞存在的原因,就是拼接 SQL 参数.也就是将用于输入的查询参数,直接拼接在 SQL 语句中,导致 ...
- SQL注入原理及预防SQL注入的方法
网络安全成为了现在互联网的焦点,这也恰恰触动了每一位用户的神经,担心网上的信息以及个人隐私遭到泄露.下面要为大家介绍的是SQL注入,对于sql注入,相信程序员都知道或者使用过,如果没有了解或完全没有听 ...
- sql注入修复方法是_旧的方法是修复我们可以看到的内容。
sql注入修复方法是 When envisioning the futurestate of a company or a service, we're usually faced with the ...
- php防止sql注入处理方法
解决的办法是将php.ini的magic_quotes_gpc设置为Off 在php.ini的magic_quotes_gpc=On的情况下,如果输入的数据有单引号(').双引号(").反斜 ...
- mysql node null_node-mysql中防止SQL注入的方法总结
SQL注入简介 SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编程时的疏忽,通过SQL语句,实现无帐号登录,甚至篡改数据库. node-mysql中防止S ...
最新文章
- 一文搞定深度学习建模预测全流程(Python)
- IDEA 打可执行jar包(maven项目)
- 二阶传递函数的推导及几种求解方法的比较
- Animation Property Animation 使用
- NO32 网络层次及OSI7层模型--TCP三次握手四次断开--子网划分
- Webservice检查
- linux怎么查看进程的套接字,linux – 如何找到哪个进程绑定套接字而不是监听?...
- 外部PLC触发VisionMaster多流程运行PLC部分特殊说明
- C语言之结构体 共用体 枚举 typedef
- 基于python技术的酒店管理系统
- CC13X0CC26X0EvaluationBoard
- 青果教务系统API(Java版)
- Android GC日志
- 股票融资全面解决方案
- 多数组对象转为json数组格式
- 常见的数组及对象常用方法
- Xshell7如何查看登录密码
- 医院计算机招聘笔试内容是什么,医院招聘考试的“内幕”难道你不想知道吗?...
- 转载(https://blog.csdn.net/qq_36738482/article/details/72823509)大数据的概念
- runtime vc11 ds simulia suite