我刚才问过这个问题,但我删除了那个问题,因为我虽然找到了解决问题的合适方法。
我正在制作一个使用大量 XMLHttpRequest
的网站。我需要将已登录客户端的 user_id
发送到位于其他位置的 php
文件,该文件会将 sql
语句发送到 database
,根据登录的客户端返回信息。我对安全
没有任何知识。我对 sql
和 php
只有一点知识。所以我想让我的网站安全,所以我需要一些关于安全性的建议,以及通过适当的方式将 user_id
发送到 php
文件。
或者是否在客户端显示 user_id
是否重要。而且我仅将客户端的唯一 user_id
存储在 $_SESSION
中,没有别的。
我已经完全使用这个来源制作了我的登录/注册系统 = https://www.youtube.com/watch?v=xb8aad4MRx8&t=674s
index.php:
<?php
session_start();
?>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>TEST</title>
</head>
<body>
<?php
if (isset($_SESSION['user_id'])) {
echo ('<button>CLICK TO GET INFO IN CONSOLE</button>');
} else {
header ("Location: login.php");
exit();
}
?>
<script>
var user_id = <?php echo($_SESSION['user_id']);?>;
document.querySelector("button").onclick = function() {
var xhr = new XMLHttpRequest();
var url = "http://URL_OF_A_PHP_FILE_LOCATED_IN_A_DIFFERENT_LOCATION";
xhr.open("GET", url + "?user_id=" + user_id + "&var_1=val_1&var_2=val_2&var_3=val_3");
xhr.onload = function() {
console.log(JSON.parse(xhr.responseText));
}
xhr.send(null);
}
</script>
</body>
</html>
最佳答案
您不必使用 javascript 在 PHP 文件之间共享信息(即使在不同的服务器上)。
$_SESSION 明确用于在页面之间保存数据,您应该在页面中这样处理它。
如果您必须将 user_id 发送到不同服务器上的文件,建议在您的 PHP 文件中执行此操作,而不是 Javascript(这是客户端,因此很容易被滥用)。
您可以简单地使用 curl执行 HTTP POST 请求。
关于javascript - 如何为 XMLHttpRequest 目的在 Javascript 中存储 $_SESSION 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54660604/