你好,我正在创建一个表单,在这个表单中,用户必须找到密码才能访问另一个page.As,我硬编码正确的密码,在我的if condition.Some用户将检查它,并知道password.So,我正在努力隐藏我的if语句,甚至所有的JavaScript代码不被检查。
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<title>Login Form</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/normalize/5.0.0/normalize.min.css">
<link rel="stylesheet" href="./login/style.css"><script src="https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script>
</head>
<body>
<!-- partial:index.partial.html -->
<div class="login">
<h1>Login</h1>
<form method="post">
<input type="password" id="password" name="p" placeholder="Password" required="required" />
<button type="button" value="Login" onclick="checkPassword()" class="btn btn-primary btn-block btn-large">login</button>
</form>
</div>
<!-- partial -->
<script src="./login/script.js"></script>
</body>
</html> <script>
function checkPassword(){
if(document.getElementById('password').value == 'layriix'){
location.href = "https://gunsellerlayr.000webhostapp.com/gunseller.html";
} else {
alert('Wrong Password!');
return false;
}
}
</script>发布于 2019-09-14 09:44:23
你可以混淆它,但没有办法完全保护它。
工具链接:obfuscator.io
发布于 2019-09-14 09:49:23
我不能对此发表评论。我会尽量把每件事都说清楚。
首先,回答您的主要问题,没有办法隐藏客户端代码,即您正在为浏览器服务的JavaScript。你也许可以尝试混淆它,但是如果它被服务于一个客户端,你就不能把它隐藏起来。
现在,你想要做的事情,坦率地说,不是你应该做的事情。客户端的密码绝不是验证某人的方法。您需要了解的是将此密码作为https post请求的主体发送,然后对密码服务器端进行验证。
其次,也没有任何方法来阻止用户访问页面,而您正试图阻止他们访问该页面。而不是试图写密码。他们可以简单地复制并粘贴到url窗口,或者在控制台中运行location.href。
更好地说,如果您想对某人进行身份验证,您必须在服务器端进行身份验证,其次,您必须防止未登录的用户访问该页面。
https://stackoverflow.com/questions/57934231
复制相似问题