创建在 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 数组中的变量将尽可能与最终用户相关联。
我正在寻找一种在 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 数组中的变量将尽可能与最终用户相关联。