Teilen Sie einen Teil des JS-Codes mit, um den Bestätigungscode zu generieren und zu überprüfen
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>JS生成验证码</title> <style type="text/css"> .code { background-image: url(code.jpg); font-family: Arial; font-style: italic; color: Red; border: 0; padding: 2px 3px; letter-spacing: 3px; font-weight: bolder; } .unchanged { border: 0; } </style> <script language="javascript" type="text/javascript"> var code; //在全局 定义验证码 function createCode() { code = ""; var codeLength = 6;//验证码的长度 var checkCode = document.getElementById("checkCode"); var selectChar = new Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9,'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');//所有候选组成验证码的字符,当然也可以用中文的 for (var i = 0; i < codeLength; i++) { var charIndex = Math.floor(Math.random() * 36); code += selectChar[charIndex]; } //alert(code); if (checkCode) { checkCode.className = "code"; checkCode.value = code; } } function validate() { var inputCode = document.getElementById("input1").value; if (inputCode.length <= 0) { alert("请输入验证码!"); } else if (inputCode != code) { alert("验证码输入错误!"); createCode();//刷新验证码 } else { alert("^-^ OK"); } } </script> </head> <body onload="createCode()"> <form action="#"> <input type="text" id="input1" /> <input type="text" onclick="createCode()" readonly="readonly" id="checkCode" class="unchanged" style="width: 80px" /><br /> <input id="Button1" onclick="validate();" type="button" value="确定" /> </form> </body> </html>
Wie wir alle wissen, ist js clientseitig. Ist es also sinnvoll, die gesamte Überprüfung auf der Clientseite durchzuführen? Oder muss der vom Server generierte Verifizierungscode sicher sein? Ist der vom Frontend generierte Bestätigungscode sicher?
Der Verifizierungscode ist dynamisch, muss aber vom Client erkannt werden und für die normale Verifizierung den korrekten Wert zurückgeben. Dies ist ein Prozessproblem. Wenn es sich um js handelt, wird es auf dem Client überprüft, was im Grunde dasselbe ist! ! ! Am besten generieren Sie es auf dem Server, überprüfen es auf dem Client, bestätigen es auf dem Server und durchsuchen es normal. Ein solcher Prozess ist narrensicher
Dieser Artikel ist also nur eine technische Diskussion, bitte verwenden Sie ihn nicht in tatsächlichen Produktionsprojekten