通过XMLHttpRequest登录系统所需的安全性要求

时间:2019-02-18 03:42:36

标签: javascript php security

我创建了一个登录/注册系统,该系统将值提交到php文件并将数据库连接到登录。我从客户端担心我的登录系统的安全性,因此在login.phpscript.js中的安全性令人担忧。我需要考虑什么事物,以构建安全的登录系统。与XMLHttpRequest中的安全性或客户端的输入字段中一样。

login.php

<?php
    session_start();
?>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>LOGIN</title>
</head>
<body>
    <?php
        if (isset($_SESSION['user_id'])) {
            header ("Location: index.html");
            exit();
        }
    ?>
    <input id="inserted_id" type="text" placeholder="Account Name/e-mail" />
    <p>
    <input id="inserted_password" type="password" placeholder="Password" />
    <p>
    <button id="login_submit" type="submit">Login</button>
    <script src="script.js"></script>
</body>
</html>

script.js:

document.getElementById("login_submit").onclick = function () {
        var inserted_id = document.getElementById("inserted_id").value;
        var inserted_password = document.getElementById("inserted_password").value;
        http_request("web_includes/login.inc.php?inserted_id=" + inserted_id + "&inserted_password=" + inserted_password);
    }

    function http_request(url) {
        var xml = new XMLHttpRequest();
        xml.open("GET", url);
        xml.onload = function () {
            if (xml.responseText == "SUCCESS") {
                window.open("index.html", "_self", "", false);
            } else {
                console.log("FAIL");
            }
        }
        xml.send(null);
    }

1 个答案:

答案 0 :(得分:-1)

不确定XMLHttpRequest的内容,但需要研究;

  • CSP :内容安全策略,已指定 在HTML元标记中。
    ..(阻止或否定跨站点脚本以及其他威胁)。 .................................. https://www.youtube.com/watch?v=JbfNWg6JS4U
  • CORS :跨源资源共享。 https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
  • Sha256 及其他版本。

  • 哈希+盐+胡椒是一个类似的概念。 youtube上有许多有关.......此....

  • 的视频
  • 也正在研究。 Nonces (不是监狱类型)。 它代表一个曾经使用过的数字, 类似于按键。那只有您的网站和数据库可以访问或至少有完整的号码。

  • (将XMLHttpRequest更改为XMLHttpsRequest,其S表示安全。) 显然不可行。或自动选择。

&可能将整个登录表单放在iframe中,然后可以在其上指定各个安全属性。通过“沙盒”功能。 (不确定是否要实施其他做法或好的做法,这是必需的,但这可能会使任何潜在的攻击者增加更多的挫败感。)

对于PHP端,

以及任何Javascript文件都使用RegEx函数来阻止任何添加代码的尝试。阻止;

   {Z}()[]^></#..etc.....

只是想到了另一件事。有诸如File2hd之类的网站,您可以在其中下载整个js / css / php / json / ajax等网站。... 有一种方法可以阻止这些请求,但这就是您必须研究的东西。尽管它是用于分析和学习他人代码的一个非常方便的网站...

.php文件扩展名通常无法从客户端查看或更改, 除非他们非常熟练。.但是CSP是使用hash + salt + pepper + RegEx ...的最佳选择。

以上任何一项的结合,应该使其在票价上更加安全。 希望这会有所帮助:) ..