我正在编写自定义主题更新脚本,该脚本运行良好,但在更新后,如果单击更新成功通知链接“显示详细信息”,将显示更新的完整链接。
既然我在下载脚本中这么做了
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安装下载更新。
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\';