我遵循了关于如何在服务器上托管您的(高级)插件以实现自动更新的指南。一切正常,但一点都不安全。该插件的ZIP链接是公开的,任何人都可以下载。在服务器上托管优质WordPress插件以实现自动更新
这里是update.php文件(我的服务器上)的样子:
if (isset($_POST['action'])) {
switch ($_POST['action']) {
case 'version':
echo "3.1.1";
break;
case 'info':
$obj = new stdClass();
$obj->slug = '...';
$obj->plugin_name = '...';
$obj->new_version = "3.1.0";
$obj->requires = '4.7';
$obj->tested = '4.7.3';
$obj->downloaded = 12540;
$obj->last_updated = '2017-02-12';
$obj->homepage = '...';
$obj->sections = array(
'description' => '...'
);
$obj->download_link = 'https://.../latest.zip';
echo serialize($obj);
break;
case 'license':
echo 'false';
break;
}
} else {
header('Cache-Control: public');
header('Content-Description: File Transfer');
header('Content-Type: application/zip');
readfile('latest.zip');
}
该脚本将始终返回.zip文件,如果没有提供POST参数(版本,信息或许可) 。
我只需要一个参数发送到update.php,当WordPress请求新的.zip文件时,我可以授权下载。
即使有人知道这个过程记录在哪里,这也会有很大帮助。
所以你想通过POST发送一个参数进行验证?但是你正在检查isset文章,所以如果你甚至发送一个额外的参数进行身份验证,它永远不会到别的地方? – Thamaraiselvam
要么是这个,要么我需要知道如何让WP请求“license”POST参数。 –