正则校验 input SQL注入风险与特殊字符校验


/**
* 当前文件用于校验input输入框特殊字符与SQL关键字校验
* 使用方法:1、form表单内需校验的input添加class:check
* 2、表单提交前校验:if (!checkResult()) {
return
}
*/


// 校验特殊字符
function isSpecialChar(p_str) {
if (!p_str) {
return false
}
var regex = /^[^`~!@$%&*?<>/\\|=+^{}\[\]\'\"【】‘’¥——、,。;:?《》!]*$/i;
return !regex.test(p_str);
}
// 校验SQL注入风险
function isSqlInjection(p_str) {
if(p_str){
var reg = /(\band\b)|(\bor\b)|(\bDELETE\b)|(\bUPDATE\b)|(\bINSERT\b)|(\bEXEC\b)|(\bEXECUTE\b)|(\blike\b)|(\bselect\b)|(\bset\b)|(\bcreate\b)|(\btable\b)|(\bexec\b)|(\bdeclare\b)|(\bmaster\b)|(\bbackup\b)|(\bmid\b)|(\bcount\b)|(\badd\b)|(\balter\b)|(\bdrop\b)|(\bfrom\b)|(\btruncate\b)|(\bunion\b)|(\bjoin\b)|(\script\b)|(\balert\b)|(\blink\b)/gi;
}
return reg.test(p_str)
}

layui.use([ "jquery"],function() {
var $ = layui.jquery; //元素操作
window.checkResult = function () {
var elems = $("form").find("input.check").not("readonly");
var textareaElems = $("form").find(".layui-textarea.check");
console.log(elems,textareaElems);
var arr = [{
key: 'isSpecialChar',
tips: '输入框内含有特殊字符'
},{
key:'isSqlInjection',
tips: '输入框内含有SQL注入风险'
}];
// input
var result = 0;
var lgh = elems.length* arr.length;
$.each(elems, function(index, elem) {
arr.forEach(function (item) {
var value = $(elem).val();
if (value) {
if (eval(item.key)(value)) {
layer.msg(item.tips,{icon:5});
result--
} else {
result++;
}
} else {
result++;
}
})
});
// 文本域
var areaLength = textareaElems.length* arr.length;
var resultArea = 0;
$.each(textareaElems, function(index, elem) {
arr.forEach(function (item) {
var value = $(elem).val();
if (value) {
if (eval(item.key)(value)) {
layer.msg(item.tips,{icon:5});
resultArea--
} else {
resultArea++;
}
} else {
resultArea++;
}
})
});
console.log('result',lgh,result,'===',resultArea,areaLength);
if (result == lgh && resultArea == areaLength) {
return true
} else {
return false
}
};
});


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM