【问题标题】:Getting username and password, is this code right or not?获取用户名和密码,此代码是否正确?
【发布时间】:2019-04-19 08:09:06
【问题描述】:

我在下面给出的html中有一个html登录页面

<html>

<head>
    <title>Login Page</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>

<body>
    <form id="myform" action="API.html" method="get">
        Username : <input type="text" name="username" required><br /><br />
        Password : <input type="text" name="password" required><br /><br />
        <input type="submit" id="sub" name="submit">
    </form>
</body>

</html>

我还有另一个html页面,它是前一页的动作页面

<!DOCTYPE html>
<title>API INTEGRATION</title>
<link rel="shortcut icon" href="">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"> </script>

<body>
    <script>
        var username = "........";
        var password = "........";

        if ($.get("username") == username && $.get("password") == password) {
            var settings = {
                "async": false,
                "crossDomain": true,
                "url": "https://........../test2/api/v1/sdk_initialize",
                "method": "GET",
                "headers": {
                    "Content-Type": "application/json",
                    "cache-control": "no-cache",
                    "Authorization": "Basic " + btoa(username + ":" + password),
                }
            }
            var result = $.ajax(settings).done(function(response) {

            });

            var token = result.responseJSON;
            var settings = {
                "async": false,
                "crossDomain": true,
                "url": "https://........./test2/api/v1/Events/10?search=All ",
                "method": "GET",

                "headers": {
                    "Content-Type": "application/json",
                    "cache-control": "no-cache",
                    "Token": token,
                }
            }

            $.ajax(settings).done(function(response) {
                console.log(response);
            });
        } else {
            alert("incorrect Login Details");
        }
    </script>
</body>

</html>

我正在尝试从登录页面获取用户名和密码,然后想将其与我设置的用户名和密码进行比较,如果正确,则执行某些任务,否则会提供不正确的登录详细信息的输出。 但即使我使用相同的登录凭据,我总是得到一个输出为“不正确的登录详细信息”而不是 json 对象? 我也想知道($.get("username")==username &amp;&amp; $.get("password")==password)这个代码对不对?

【问题讨论】:

  • 来自here,我不认为这是你使用$.get()的方式
  • 您应该验证这些服务器端。任何检查您的 js 代码的人都可以看到用户名和密码。
  • 正确的密码处理包括:1) &lt;input type="password"&gt; 2) 服务器端验证 3) 为密码设计的单向哈希(BCRYPT、Argon2i...)。这样做意味着与您尝试构建的开发工作量相同。

标签: javascript jquery html node.js


【解决方案1】:

更新的答案。

据我了解,您有一个登录表单,当表单提交时,它会导航到您验证它的另一个页面。

在这种情况下,我可以看到您正在使用method="get" 登录表单。这在任何方面都不好。因为它将附加在 url 中,并且对人们可见并且不安全。

无论如何,如果是这种情况,那么您可以从 url 获取它:

var formdata = window.location.search.split('&');
var user = formdata[0].split('=')[1];
var pass = formdata[1].split('=')[1];

if (user == username && pass == password) {

【讨论】:

  • 即使表单和操作是分开的,这是否有效?
猜你喜欢
  • 2015-02-13
  • 1970-01-01
  • 2020-02-25
  • 1970-01-01
  • 1970-01-01
  • 2012-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多