我创建了一个登录/注册系统,该系统将值提交到php
文件并将数据库连接到登录。我从客户端担心我的登录系统的安全性,因此在login.php
和script.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);
}
答案 0 :(得分:-1)
不确定XMLHttpRequest的内容,但需要研究;
Sha256 及其他版本。
哈希+盐+胡椒是一个类似的概念。 youtube上有许多有关.......此....
也正在研究。 Nonces (不是监狱类型)。 它代表一个曾经使用过的数字, 类似于按键。那只有您的网站和数据库可以访问或至少有完整的号码。
(将XMLHttpRequest更改为XMLHttpsRequest,其S表示安全。) 显然不可行。或自动选择。
&可能将整个登录表单放在iframe中,然后可以在其上指定各个安全属性。通过“沙盒”功能。 (不确定是否要实施其他做法或好的做法,这是必需的,但这可能会使任何潜在的攻击者增加更多的挫败感。)
对于PHP端,以及任何Javascript文件都使用RegEx函数来阻止任何添加代码的尝试。阻止;
{Z}()[]^></#..etc.....
只是想到了另一件事。有诸如File2hd之类的网站,您可以在其中下载整个js / css / php / json / ajax等网站。... 有一种方法可以阻止这些请求,但这就是您必须研究的东西。尽管它是用于分析和学习他人代码的一个非常方便的网站...
.php文件扩展名通常无法从客户端查看或更改, 除非他们非常熟练。.但是CSP是使用hash + salt + pepper + RegEx ...的最佳选择。
以上任何一项的结合,应该使其在票价上更加安全。 希望这会有所帮助:) ..