我是 php 新手,我正在尝试制作一个登录系统,但不知何故它不起作用。我在变量中预定义了密码,并创建了一个函数来检查输入的密码是否与变量中的密码匹配。
这是我到目前为止的代码:
<?php $validkey = "Test" ?>
<script type="text/javascript">
function check_value()
{
var password = document.getElementById("password").value;
if (password == '<?php echo $validkey; ?>')
{
location.href = "tafels.html";
}
}
</script>
<input type ="text" name="password" id="password" />
<button onclick="check_value();">Login</button>
最佳答案
这不是登录过程应有的工作方式。 首先,密码应该被散列并存储在数据库中。 绝不将密码存储为明文。 其次,密码验证应该在服务器端的 PHP 文件中进行。
为了解释为什么在前端验证密码是危险的,只需检查这部分代码:
if(password=='<?php echo $validkey; ?>')
{
location.href = "tafels.html";
}
当服务器处理您的 PHP 脚本时,它会将有效密码回显到生成的 HTML 中。然后该 HTML 将被发送到浏览器。假设有效密码是“p@$$w0rd”,如果您检查页面的源代码,您将发现以下内容:
if(password=='p@$$w0rd')
{
location.href = "tafels.html";
}
服务器将替换此:
<?php echo $validkey; ?>
带有密码的值。这对每个人来说都是可见的。一点也不安全。
关于javascript - 使用变量中预设的密码登录系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36883228/