我正在努力使这段代码尽可能安全,是否存在任何突发的漏洞?我认为我把它锁得很紧,你还有什么可以实现的吗?
function CheckPin(){
var str="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
var strId= document.form1.tbPin.value;
var lenId=strId.length;
var check=true;
//if (lenId != 20)
if (!(lenId ==20 || lenId == 10))
{
alert("You must enter a 20 or 10 digit pin number.");
document.form1.tbPin.focus();
return false;
}
else
{
//for(var i=0;i<20;i++)
for(var i=0;i<lenId;i++)
{
check=str.indexOf(strId.charAt(i));
if(check == -1)
{
alert("Do not use special characters.(e.g. @,#,&) ");
document.form1.tbPin.focus();
return false;
break;
}
else
{
if (i ==19)
{
break;
}
}
}
}
if (document.form1.btnChecker.value == 1)
{
alert("The processing is in progress.");
return false;
}
document.form1.btnChecker.value = 1;
}
</script>
<script src="../JS/Tags.js" type="text/javascript"></script>
<script src="../JS/Tags2.js" type="text/javascript"></script>
Tags.js:
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
Tags2.js:
var pageTracker = _gat._getTracker("UA-1376772-6"); pageTracker._initData(); pageTracker._trackPageview();
答案 0 :(得分:4)
不得在浏览器中进行关键计算。您在浏览器中运行的任何内容纯粹是为了方便用户。话虽如此,您在浏览器中通过JavaScript进行的验证应该产生与您在服务器上必须执行的验证相同的结果。