创建在 Javascript 和 PHP 之间使用的唯一代码的最简单方法?

Easiest way to create a unique code to use between Javascript and PHP?

我正在寻找一种在 JavaScript 和 PHP 中创建相同代码的方法,作为一种安全措施,以确保您不能只访问 PHP 脚本,但仅当此 JavaScript 表示访问它时。

我正在使用 AJAX 访问 PHP 日志文件

var xhttp = new XMLHttpRequest();
xhttp.open('POST', 'log/', true);
xhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
xhttp.send('uniqueCode=xxxxxxxx...');

(其中 xxxxxxxx... 是唯一代码。)

在我要添加的PHP代码中

if ($_POST['uniqueCode'] === xxxxxxxx...) {
    //Run Code
}else {
    http_response_code(403);
}

(其中 xxxxxxxx... 是唯一代码。)

有没有办法预先传输这个独特的代码,然后使用上面的代码?

我正在使用 PHP 版本 5.6

this question开始你可以使用这个功能

md5(uniqid('', true));

如果可能,请指定 PHP 版本,以便我们查看手册以获取更新的解决方案:)

要确保最终用户有某种权限来做某事,您需要使用会话。为了更好的安全性,您需要使用 https 而不是 http。这使得窃取会话密钥变得更加困难。与窃取会话密钥相比,从 JavaScript 窃取随机代码是微不足道的。

这样做很简单...

<?php
start_session();
if($_SESSION['authorized']) // the user can do the secret stuff
else // the user cannot do the secret stuff

设置要授权的用户就这么简单...

$_SESSION['authorized'] = true;

仅此而已。启动会话后,$_SESSION 数组中的变量将尽可能与最终用户相关联。