如何允许主题更新仅下载到WordPress安装?

时间:2017-01-18 作者:Benn

我正在编写自定义主题更新脚本,该脚本运行良好,但在更新后,如果单击更新成功通知链接“显示详细信息”,将显示更新的完整链接。

enter image description here

既然我在下载脚本中这么做了

if(isset($_GET[\'download\'])){

    // run download

}else{

    exit;

}
您可以复制链接并直接下载zip。

我检查了另一个检查user\\u代理的下载脚本,如果WordPress字符串在其中,则允许下载,因此我对脚本进行了如下修改

$user_agent = $_SERVER[\'HTTP_USER_AGENT\'];

if(isset($_GET[\'download\']) && stristr( $user_agent, \'WordPress\' ) == TRUE ){

    // run download

}else{

    exit;

}
现在我不确定这有多可靠,所以我的问题是更新核心发送的任何内容是否有可靠的字符串/头。php?操作=执行主题升级

我可以检查以确保只允许WordPress安装下载更新。

1 个回复
SO网友:prosti

$_SERVER[\'HTTP_USER_AGENT\'] 是你不应该依赖的东西。

这可以是以下任何内容:

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36

☆*:。゜゚・*ヽ(^ᴗ^)ノ*・゜゚。:*☆ ¯\\_(ツ)_/¯(ಠ益ಠ)(ಥ‿ಥ)(ʘ‿ʘ)ლ(ಠ_ಠლ)( ͡° ͜ʖ ͡°)ヽ(゚Д゚)ノʕ•̫͡•ʔᶘ ᵒᴥᵒᶅ(=^ ^=)oO
所以你需要思考一些其他可以依赖的东西。

为什么不简单地使用表单操作do-theme-upgrade?

File: wp-admin/update-core.php
336: function list_theme_updates() {
337:    $themes = get_theme_updates();
338:    if ( empty( $themes ) ) {
339:        echo \'<h2>\' . __( \'Themes\' ) . \'</h2>\';
340:        echo \'<p>\' . __( \'Your themes are all up to date.\' ) . \'</p>\';
341:        return;
342:    }
343: 
344:    $form_action = \'update-core.php?action=do-theme-upgrade\';

相关推荐

WP plugin updates

我为WordPress编写了一个插件,需要定期更新。是否可以通知用户新版本可用(其他一些插件具有某种类型的此选项-当新版本可用时,用户可以在其管理面板中查看并更新-所有内容都使用一些内置的WP功能…)