jquery过滤特殊字符',防sql注入的实现方法


Posted in Javascript onAugust 17, 2016

今天写的代码给项目经理看了下,因为之前没有考虑sql注入的问题,jquery过滤特殊字符',防sql注入的实现方法然后在他测试我的code的时候,打了一个“'”,然后我的程序就挂了!

于是乎,我在网上找到了一个验证并过滤文本框的jquery!

先上图:

jquery过滤特殊字符',防sql注入的实现方法

PS:这里用@#测试,因为'太小了,都看不清楚了!

具体的jquery代码:

<script type="text/javascript" language="javascript">
	$(document).ready(function() {
		//返回
		$("#btnBack").click(function() {
			location.href = "${basePath}/user/user_List.jspx?action=peek";
		});
		
		//非空验证
		$("#btnSubmit").click(function(){
			if($("#name").val() == ""){
				alert("姓名必填!");
				$("#name").focus();
				return false;
			}
			
			//js验证 `~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?
			var pattern = new RegExp("[~'!@#$%^&*()-+_=:]");
			if($("#name").val() != "" && $("#name").val() != null){
				if(pattern.test($("#name").val())){
					alert("非法字符!");
					$("#name").attr("value","");
					$("#name").focus();
					return false;
				}
			}
			
			if($("#enterDate").val() == ""){
				alert("入职时间必填!");
				return false;
			}
		});
		
		//是否存在用户名
		var existName = '${action_msg}';
		if(existName != "" && existName != null){
			$("#span_").attr("style","display:block");
			$("#span_").attr("style","color:red");
			$("#span_").html("用户名"+existName+"已经存在!换~~");
		}else{
			$("#span_").attr("style","display:none");
		}
	});
</script>

这是以弹框的形式!

$(document).ready(function(){
		//过滤非法字符
		function stripscript(s){ 
			var pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]") 
			var rs = ""; 
			for (var i = 0; i < s.length; i++) { 
				rs = rs+s.substr(i, 1).replace(pattern, ''); 
			} 
		return rs; 
		} 
		
		//批量删除
		$("#btnDel").click(function() {
			if(confirm("确认删除?")){
					var lstInt = new Array();
					var index = 0;
					$("input[name='checkbox']:checked").each(function() {
							lstInt[index] = $(this).attr("value");
							index++;
					});
					if (lstInt.length <= 0) {
						alert("你还没有选择!");
						return;
					}
					if (lstInt != null&& lstInt.length > 0) {
						location.href = '${basePath}/user/delUser.jspx?idLst=' + lstInt;
					}
				}
			});
		

		// 全选
		$("#allCheck").click(function() {
			$("#notAllCheck").attr("checked", "");
			$("input[name='checkbox']").not("input:checked").each(function() {
				$(this).attr("checked", "checked");
			});
		});
		// 全不选
		$("#notAllCheck").click(function() {
			$("#allCheck").attr("checked", "");
			$("input[name='checkbox']:checked").each(function() {
				$(this).attr("checked", "");
			});
		});
		
		//查询
		$("#btnSelect").click(function(){
			if($("#inputName").val() == "" || $("#inputName").val() == "请输入员工姓名!"){
				alert("请输入员工姓名![支持模糊匹配]");
				$("#inputName").focus();
			}else if($("#inputName").val() == "'" ){
				alert("输入非法字符!");
				$("#inputName").focus();
				$("#inputName").attr("value","");
			}else{
				var name = $("#inputName").val();
				location.href="user_List.jspx?inputName="+stripscript(name);
			}
		});
		
		//友情提示
		$("#inputName").blur(function(){
			if($("#inputName").val() == ""){
				$(this).attr("value","请输入员工姓名!");
			}
			$(this).css("color","#D6D6FF");
		});
		
		$("#inputName").focus(function(){
			if($("#inputName").val() == "请输入员工姓名!"){
				$(this).attr("value","");
			}
			$(this).css("color","#6699FF");
		});
		
		var name = '${name}';
		if(name != '' && name != null){
			$("#inputName").attr("value",name);
		}
		
		$("#btnBackIndex").click(function(){
			location.href="user_List.jspx";
		});
	});

这是用空格来替换!

以上这篇jquery过滤特殊字符',防sql注入的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Jquery 弹出层插件实现代码
Oct 24 Javascript
json数据处理技巧(字段带空格、增加字段、排序等等)
Jun 14 Javascript
javascript调试之DOM断点调试法使用技巧分享
Apr 15 Javascript
javascript实现无限级select联动菜单
Jan 02 Javascript
JavaScript中String对象的方法介绍
Jan 04 Javascript
Bootstrap面板使用方法
Jan 16 Javascript
angular-cli修改端口号【angular2】
Apr 19 Javascript
Angular中ng-repeat与ul li的多层嵌套重复问题
Jul 24 Javascript
vue.js 使用axios实现下载功能的示例
Mar 05 Javascript
vue 实现cli3.0中使用proxy进行代理转发
Oct 30 Javascript
原生jQuery实现只显示年份下拉框
Dec 24 jQuery
基于vue+echarts数据可视化大屏展示的实现
Dec 25 Vue.js
js替换字符串中所有指定的字符(实现代码)
Aug 17 #Javascript
在javascript中使用com组件的简单实现方法
Aug 17 #Javascript
模拟javascript中的sort排序(简单实例)
Aug 17 #Javascript
js replace(a,b)之替换字符串中所有指定字符的方法
Aug 17 #Javascript
BOM系列第一篇之定时器setTimeout和setInterval
Aug 17 #Javascript
BOM系列第二篇之定时器requestAnimationFrame
Aug 17 #Javascript
AngularJS 视图详解及示例代码
Aug 17 #Javascript
You might like
日本十大惊悚动漫
2020/03/04 日漫
用PHP动态生成虚拟现实VRML网页
2006/10/09 PHP
PHP多例模式介绍
2013/06/24 PHP
PHP如何读取由JavaScript设置的Cookie
2017/03/22 PHP
PHP利用pdo_odbc实现连接数据库示例【基于ThinkPHP5.1搭建的项目】
2019/05/13 PHP
类之Prototype.js学习
2007/06/13 Javascript
javascript获取元素CSS样式代码示例
2013/11/28 Javascript
javascript顺序加载图片的方法
2015/07/18 Javascript
javascript实现网页子页面遍历回调的方法(涉及 window.frames、递归函数、函数上下文)
2015/07/27 Javascript
jquery输入数字随机抽奖特效的简单实现代码
2016/06/10 Javascript
js放大镜放大购物图片效果
2017/01/18 Javascript
AngularJS 中的数据源的循环输出
2017/10/12 Javascript
浅谈在node.js进入文件目录的问题
2018/05/13 Javascript
命令行批量截图Node脚本示例代码
2019/01/25 Javascript
微信小程序地图导航功能实现完整源代码附效果图(推荐)
2019/04/28 Javascript
详解小程序input框失焦事件在提交事件前的处理
2019/05/05 Javascript
jQuery实现图片切换效果
2020/10/19 jQuery
使用Python判断IP地址合法性的方法实例
2014/03/13 Python
浅谈python字符串方法的简单使用
2016/07/18 Python
详解TensorFlow在windows上安装与简单示例
2018/03/05 Python
python+pandas+时间、日期以及时间序列处理方法
2018/07/10 Python
python实现植物大战僵尸游戏实例代码
2019/06/10 Python
详解pandas删除缺失数据(pd.dropna()方法)
2019/06/25 Python
python基于FTP实现文件传输相关功能代码实例
2019/09/28 Python
python机器学习实现决策树
2019/11/11 Python
Django使用rest_framework写出API
2020/05/21 Python
基于python 将列表作为参数传入函数时的测试与理解
2020/06/05 Python
使用PyCharm官方中文语言包汉化PyCharm
2020/11/18 Python
Python Socket多线程并发原理及实现
2020/12/11 Python
如何开启linux的ssh服务
2015/02/14 面试题
思想汇报范文
2013/11/04 职场文书
大学本科毕业生的自我鉴定
2013/11/26 职场文书
人事专员岗位职责范本
2014/03/04 职场文书
行政人事岗位职责
2014/03/17 职场文书
党员自我对照检查材料
2014/08/19 职场文书
2015年党员发展工作总结
2015/05/13 职场文书