插件激活/停用时真的需要check_admin_referer吗?

时间:2016-10-22 13:14:47

标签: php wordpress security nonce

在我的插件中'代码,在激活/停用/卸载时,我用来执行这样的check_admin_referer()。

    if ( ! current_user_can( 'activate_plugins' ) )
        wp_die(__("Insufficient privilege for the required operation"));
    $plugin = isset( $_REQUEST['plugin'] ) ? $_REQUEST['plugin'] : '';
    check_admin_referer( "deactivate-plugin_{$plugin}" );

实际上,谷歌搜索Wordpress'安全良好的编程习惯,这似乎是一个众所周知的做法。 但是,我在使用TGM-Plugin-Activation框架时遇到了麻烦。

此框架用于处理某个插件或主题需要的情况,作为依赖项,其他插件。这个框架让我通过设置一个页面来处理这个案例,最终用户可以在这个页面上安装/更新所需的依赖项。 但是,这个页面有自己的(花哨的?)随机数验证机制,它完全崩溃了我的check_admin_referer()验证。

根据TGMPA开发人员的说法,激活/取消激活后的check_admin_referer()是多余的,因为它是由Wordpress本身在内部执行的。

简而言之,我的问题是:check_admin_referer()真的是一个安全措施吗?真的需要吗?或者可以安全地忽略它,正如TGMPA开发人员所建议的那样?

提前感谢您的帮助。

0 个答案:

没有答案