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 相关文章推荐
保证JavaScript和Asp、Php等后端程序间传值编码统一
Apr 17 Javascript
json 入门基础教程 推荐
Oct 31 Javascript
js批量设置样式的三种方法不推荐使用with
Feb 25 Javascript
JQUERY对单选框(radio)操作的小例子
Apr 25 Javascript
JavaScript修改css样式style动态改变元素样式
Dec 16 Javascript
AngularJS 入门教程之HTML DOM实例详解
Jul 28 Javascript
Vue表单实例代码
Sep 05 Javascript
详解基于Bootstrap+angular的一个豆瓣电影app
Jun 26 Javascript
AngularJS页面带参跳转及参数解析操作示例
Jun 28 Javascript
vue.js实例对象+组件树的详细介绍
Oct 20 Javascript
javascript实现图片轮播代码
Jul 09 Javascript
electron+vue实现div contenteditable截图功能
Jan 07 Javascript
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
虹吸式咖啡探讨–研磨
2021/03/03 冲泡冲煮
windows下PHP_intl.dll正确配置方法(apache2.2+php5.3.5)
2014/01/14 PHP
PHP内置的Math函数效率测试
2014/12/01 PHP
php输出金字塔的2种实现方法
2014/12/16 PHP
php简单判断两个字符串是否相等的方法
2015/07/13 PHP
Angularjs全局变量被作用域监听的正确姿势
2016/02/06 Javascript
关于网页中的无缝滚动的js代码
2016/06/09 Javascript
老生常谈js动态添加事件--- 事件委托
2016/07/19 Javascript
JS实现获取图片大小和预览的方法完整实例【兼容IE和其它浏览器】
2017/04/24 Javascript
vue通过watch对input做字数限定的方法
2017/07/13 Javascript
weex里Vuex state使用storage持久化详解
2017/09/09 Javascript
Vue全家桶实践项目总结(推荐)
2017/11/04 Javascript
详解react-router 4.0 下服务器如何配合BrowserRouter
2017/12/29 Javascript
解决Vue 项目打包后favicon无法正常显示的问题
2018/09/01 Javascript
使用 electron 实现类似新版 QQ 的登录界面效果(阴影、背景动画、窗体3D翻转)
2018/10/23 Javascript
javascript判断一个变量是数组还是对象
2019/04/10 Javascript
vue中watch和computed为什么能监听到数据的改变以及不同之处
2019/12/27 Javascript
[02:38]DOTA2亚洲邀请赛小组赛精彩集锦:Wings完美团击溃对手
2017/03/29 DOTA
python定时检查启动某个exe程序适合检测exe是否挂了
2013/01/21 Python
python将ansible配置转为json格式实例代码
2017/05/15 Python
Flask框架信号用法实例分析
2018/07/24 Python
pytorch中tensor的合并与截取方法
2018/07/26 Python
Python列表推导式与生成器用法分析
2018/08/02 Python
python中aioysql(异步操作MySQL)的方法
2019/04/11 Python
python绘制雪景图
2019/12/16 Python
如何设置PyCharm中的Python代码模版(推荐)
2020/11/20 Python
CSS3的calc()做响应模式布局的实现方法
2017/09/06 HTML / CSS
html5 Web SQL Database 之事务处理函数transaction与executeSQL解析
2013/11/07 HTML / CSS
英国和国际包裹递送:ParcelCompare
2019/08/26 全球购物
外企测试工程师面试题
2015/02/01 面试题
小学生秋游活动方案
2014/02/23 职场文书
前处理班长职位说明书
2014/03/01 职场文书
2014业务员年终工作总结
2014/12/09 职场文书
春季运动会加油词
2015/07/18 职场文书
Java 中的 Unsafe 魔法类的作用大全
2021/06/26 Java/Android
解决MySQL添加新用户-ERROR 1045 (28000)的问题
2022/03/03 MySQL