jquery過(guò)濾特殊字符',防sql注入的實(shí)現(xiàn)方法
今天寫的代碼給項(xiàng)目經(jīng)理看了下,因?yàn)橹皼](méi)有考慮sql注入的問(wèn)題,
然后在他測(cè)試我的code的時(shí)候,打了一個(gè)“'”,然后我的程序就掛了!
于是乎,我在網(wǎng)上找到了一個(gè)驗(yàn)證并過(guò)濾文本框的jquery!
先上圖:

PS:這里用@#測(cè)試,因?yàn)?太小了,都看不清楚了!
具體的jquery代碼:
<script type="text/javascript" language="javascript">
$(document).ready(function() {
//返回
$("#btnBack").click(function() {
location.href = "${basePath}/user/user_List.jspx?action=peek";
});
//非空驗(yàn)證
$("#btnSubmit").click(function(){
if($("#name").val() == ""){
alert("姓名必填!");
$("#name").focus();
return false;
}
//js驗(yàn)證 `~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?
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("入職時(shí)間必填!");
return false;
}
});
//是否存在用戶名
var existName = '${action_msg}';
if(existName != "" && existName != null){
$("#span_").attr("style","display:block");
$("#span_").attr("style","color:red");
$("#span_").html("用戶名"+existName+"已經(jīng)存在!換~~");
}else{
$("#span_").attr("style","display:none");
}
});
</script>
這是以彈框的形式!
$(document).ready(function(){
//過(guò)濾非法字符
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("確認(rèn)刪除?")){
var lstInt = new Array();
var index = 0;
$("input[name='checkbox']:checked").each(function() {
lstInt[index] = $(this).attr("value");
index++;
});
if (lstInt.length <= 0) {
alert("你還沒(méi)有選擇!");
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() == "請(qǐng)輸入員工姓名!"){
alert("請(qǐng)輸入員工姓名![支持模糊匹配]");
$("#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","請(qǐng)輸入員工姓名!");
}
$(this).css("color","#D6D6FF");
});
$("#inputName").focus(function(){
if($("#inputName").val() == "請(qǐng)輸入員工姓名!"){
$(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";
});
});
這是用空格來(lái)替換!
以上這篇jquery過(guò)濾特殊字符',防sql注入的實(shí)現(xiàn)方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
jquery mobile的觸控點(diǎn)擊事件會(huì)多次觸發(fā)問(wèn)題的解決方法
這篇文章主要介紹了jquery mobile的觸控點(diǎn)擊事件會(huì)多次觸發(fā)問(wèn)題的解決方法以及替代方法,需要的朋友可以參考下2014-05-05
jQuery實(shí)現(xiàn)的簡(jiǎn)單折疊菜單(折疊面板)效果代碼
這篇文章主要介紹了jQuery實(shí)現(xiàn)的簡(jiǎn)單折疊菜單(折疊面板)效果代碼,涉及jQuery中slideToggle與toggleClass方法的靈活使用技巧,需要的朋友可以參考下2015-09-09
jQuery模仿京東/天貓商品左側(cè)分類導(dǎo)航菜單效果
在京東或者是天貓上可以看到左側(cè)分類導(dǎo)航菜單,當(dāng)鼠標(biāo)滑過(guò)導(dǎo)航分類時(shí),會(huì)出現(xiàn)詳細(xì)分類模塊,鼠標(biāo)移開(kāi)就會(huì)恢復(fù)默認(rèn)樣式,下面小編給大家?guī)?lái)了基于 mouseenter()和mouseleave()實(shí)現(xiàn)仿京東/天貓商品左側(cè)分類導(dǎo)航菜單效果,一起看看吧2016-06-06
jQuery ajax時(shí)間差導(dǎo)致的變量賦值問(wèn)題分析
這篇文章主要介紹了jQuery ajax時(shí)間差導(dǎo)致的變量賦值問(wèn)題,結(jié)合實(shí)例對(duì)比分析了jQuery的ajax調(diào)用中出現(xiàn)的時(shí)間差賦值問(wèn)題原因與解決方法,需要的朋友可以參考下2016-01-01
jquery實(shí)現(xiàn)鼠標(biāo)經(jīng)過(guò)顯示下劃線的漸變下拉菜單效果代碼
這篇文章主要介紹了jquery實(shí)現(xiàn)鼠標(biāo)經(jīng)過(guò)顯示下劃線的漸變下拉菜單效果代碼,涉及jquery插件SuperSlide.2.1.js實(shí)現(xiàn)滑動(dòng)切換效果的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-08-08
jquerymobile checkbox及時(shí)刷新才能獲取其準(zhǔn)確值
一般登錄的時(shí)候 都有個(gè)記住用戶名 記住密碼 的兩個(gè)checkbox 多選框用jquerymobile 做頁(yè)面 ,當(dāng)勾選checkbox 時(shí)總是不能獲取它正確的值2012-04-04
jQuery實(shí)現(xiàn)導(dǎo)航回彈效果
本文主要介紹了jQuery實(shí)現(xiàn)導(dǎo)航回彈效果的實(shí)例,具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-02-02
google jQuery 引用文件,jQuery 引用地址集合(jquery 1.2.6至jquery1.5.2)
很多網(wǎng)站都是使用這種方式引入,客戶的瀏覽器可能已經(jīng)緩存過(guò)了 jquery。可以直接調(diào)用本地的,速度更快2011-04-04

