我来自电子背景,所以在设计网页时没有很好的知识.我正在做一个以太网项目,为此我需要创建一个网页,但在该网页之前我还需要创建一个登录验证网页.我以某种方式设法使用HTML JAVASCRIPT,但问题是任何人都可以通过查看页面源来查看用户名密码.
我很难进行身份验证.我有HTML和JAVASCRIPT的基本知识,但随时可以学习.我在谷歌上找到的只是登录模板,但我甚至不知道如何使用它们.
任何人都可以给我一个例子或指向我一些良好的链接.
HTML和Javascript在客户端进行解释。出于登录目的,通常使用服务器端代码来验证凭据-仅仅是因为您已经知道这一事实-通过简单的客户端实现,您可以在源代码中看到凭据,服务器端也是一旦您理解它,它就变得更容易使用,它对于进一步的开发更加灵活,它更加安全,并且在此任务中确实被广泛使用。
为此,最好使用PHP,ASP,Ruby(或任何其他服务器端语言)。如果您不希望这样做,则需要使用户难以从源代码中读取凭据。
为此,您可以使用多种方法,例如加密或混淆。强烈建议您不要使用加密技术,因为加密技术可为您的应用程序增加安全性。从本质上讲,混淆意味着您以难以阅读的方式更改了源代码-添加了对字符串进行编码的函数,以使您的“密码”一目了然。但是,混淆总是可以绕开的,并且通常可以使用良好的调试工具轻松地进行混淆。
因此,让我们来谈谈密码学。您在这里寻找的是使用一种哈希函数。您有多种选择-MD5,SHA1,SHA256,...分别提供不同级别的安全性。您可以使用Java脚本中的SHA256实现。还有许多其他的库和示例,因此只需使用Google并找到所需的库即可。
现在,该怎么办?假设您有sha256()函数,该函数接受字符串并将其哈希作为字符串返回。对于您拥有的每个用户和密码,您都要对字符串“ user + password”的SHA256哈希进行预计数。
假设您希望用户名是“ Pedro”,并且该帐户的密码是“ MyPassword”。
您可以预先计算“ PedroMyPassword”的哈希值,例如使用在线哈希工具。您可以看到其SHA256哈希为
40be6e939eedf018b2b846e027067dcb006585a2155ce324f1f2a6a71d418b21
Run Code Online (Sandbox Code Playgroud)
该哈希是您放入Javascript代码中的内容。
当用户输入用户名和密码时,您可以在“用户名+密码”上调用sha256函数,并将其与预先计算的哈希值进行比较。
请注意,您必须选择真正的强密码,否则某些攻击(例如字典攻击)将很容易用于破坏哈希。
现在的问题是,您没有指定下一步要做什么。例如,您可能想将经过身份验证的用户重定向到下一页,但是在这里您再次遇到相同的问题-如果您在代码中将Javascript重定向到“ secondpage.html”,则有人可以跳过身份验证并导航到第二页直接进入页面。
在这种情况下,您可以做的是将第二页命名为
40be6e939eedf018b2b846e027067dcb006585a2155ce324f1f2a6a71d418b21.html
Run Code Online (Sandbox Code Playgroud)
即您的用户+传递字符串的哈希。在此变体中,您根本不会将哈希放入代码中。对于未通过身份验证的所有用户,Web服务器将仅返回错误404。例如,如果有人尝试使用密码为“ 123456”的“ Pedro”作为密码,则SHA256将为
3bac31720fdd4619ebe2e8865ccc0dc87eb744f3f05f08c628bb9217a77e4517
如果您将它们重定向到
3bac31720fdd4619ebe2e8865ccc0dc87eb744f3f05f08c628bb9217a77e4517.html
它不存在,因为您的第二个页面文件名为
40be6e939eedf018b2b846e027067dcb006585a2155ce324f1f2a6a71d418b21.html
Run Code Online (Sandbox Code Playgroud)
您将需要为每个用户/通行证组合创建第二页。然后,您可以将一个简单的重定向代码放入实际的第二页。
但是请确保您使用的是HTTPS协议,否则,第二页将未经加密地通过网络。
所有这些都可以使用,但是我强烈建议您考虑使用服务器端的方式。
Kul*_*ony -3
试试这个代码 -
function validate(){
var username = document.getElementById("username").value;
var password = document.getElementById("password").value;
if ( username == "username1" && password == "password1"){
alert ("Login successfully");
}
else{
alert("Invalid username or password");
}
return false;
}Run Code Online (Sandbox Code Playgroud)
<html>
<head>
<title>Javascript Login Form Validation</title>
<!-- Include JS File Here -->
<script src="js/login.js"></script>
</head>
<body>
<div class="container">
<form id="form_id" method="post" name="myform">
<label>User Name :</label>
<input type="text" name="username" id="username"/>
<label>Password :</label>
<input type="password" name="password" id="password"/>
<input type="button" value="Login" id="submit" onclick="validate()"/>
</form>
</div>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
63671 次 |
| 最近记录: |