【问题标题】:How to force the user to write a password before accessing a webpage?如何强制用户在访问网页之前输入密码?
【发布时间】:2020-11-02 00:49:32
【问题描述】:

我正在从事一个 Web 开发项目,我被要求强制用户填写主页表单中的密码字段,然后再授予他们访问主网页的权限。但是,即使我在密码输入字段中添加了“必需”标签,我也会得到相反的行为。该网页在未写入密码时授予用户访问权限,而在写入密码时则不授予用户访问权限。如果有人可以帮助解决这个问题,那将非常有帮助。我将输入表单的代码以及应该提供此行为的函数留在这里。

----表单的HTML代码(关注第二个输入,id="form-psw"----

<div id="homepage-form">
  <form id="homepage-data-form" class="form-container">
    <h1 id="homepage-form-heading">Login</h1>

    <label for="email" class="form-label bold">Email</label>
    <input id="form-email" type="text" placeholder="Enter Email" name="email" required>

    <label for="psw" class="bold">Password</label>
    <input id="form-psw" type="password" placeholder="Enter Password" name="psw" required>
  </form>
</div>

-----控制解释行为的JS代码-----

function checkCookie() {
  var cname = document.getElementById("form-email").value;
  var user = getCookie(cname);
  if (user == "") {
    alert("Sorry, the provided email is not registered. Click on the Register option to get your account.");
  } else {
    window.location.href = "main.html";
  }
}

【问题讨论】:

  • 在你的 JS 中,checkCookie 函数在哪里以及如何被调用?
  • 如果按钮上有点击事件监听器,这可能不起作用。由于我没有看到“动作”属性,我猜点击事件侦听器绕过了所需的标签。这是一个 JS Fiddle 展示了这一点:jsfiddle.net/dmru0b8y/1 请确认您的代码是这种情况。如果是,你可以用一个简单的 if 语句来检查密码是否为空。
  • `
    `
  • 将其添加到您的问题中,而不是在 cmets 中。
  • 当用户按下登录按钮时,它会检查是否存储了cookie。
  • 标签: javascript html cookies


    【解决方案1】:

    让网页受密码保护绝不是明智之举。这是因为漏洞太多。做这种事情的最好方法是使用 .htaccess 文件。顺便说一句,输入字段的必需属性仅在您将其放在表单标签中时才有效

    【讨论】:

    • 同意 - 任何可以阅读 JavaScript 代码的人都可以在几秒钟内轻松绕过这一点。在我看来,OP 正在为一个班级做一个项目。希望这不是部署到现实世界的任何东西?
    • 您的第一句话缺少关键短语“by client-side javascript
    • 问题是没有办法用客户端的javascript实现这个,服务器端的js也不行。 Javascript 有太多方法可以实际强制输入密码。
    猜你喜欢
    • 2015-12-03
    • 1970-01-01
    • 2019-04-26
    • 1970-01-01
    • 2012-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多