在前台使用admin-ajax.php安全吗?

时间:2016-07-16 作者:Alex

我正在使用Filter Custom Fields & Taxonomies Light. 我发现它正在使用admin-ajax.php 在前端进行的AJAX搜索甚至没有登录。

请参见:

https://plugins.svn.wordpress.org/filter-custom-fields-taxonomies-light/trunk/profi-search-filter.php

add_action( \'wp_head\', \'sf_head\', 1 );
function sf_head(){
    $settings = get_option( \'search-filter-settings\' );
    if( !isset( $settings[\'style\'] ) || $settings[\'style\'] == \'\' )
        wp_register_style( \'sf-style\', SF_URL . \'res/style.css\' );
    else
        wp_register_style( \'sf-style\', SF_URL . \'res/\' . $settings[\'style\'] . \'.css\');
    wp_enqueue_style( \'sf-style\' ); 


    wp_enqueue_script(\'jquery\');
    wp_enqueue_script(\'jquery-ui-slider\');
    wp_register_script( \'sf-script\', SF_URL . \'res/sf.js\' );
    wp_enqueue_script( \'sf-script\' );

    ?>
    <script>var sf_ajax_root = \'<?php echo admin_url(\'admin-ajax.php\'); ?>\'</script>
    <?php
}
这是在Wordpress中使用AJAX的常见方法还是安全漏洞?

1 个回复
最合适的回答,由SO网友:JMau 整理而成

看见documentation here 但不要错过注释2和以下几点:

前端的AJAX更加复杂,ajaxurl没有定义,因此必须使用wp_localize_script().

  • 对于未登录的用户,您必须使用wp\\u ajax\\u nopriv\\uuaction}可能存在安全问题
  • About the third point :

    要小心,因为您允许未登录用户访问某些数据和功能。所以你需要问问自己你想做什么。这可能看起来有点太多了,但对我来说,在WP前端使用AJAX时,你应该让$\\u获取东西,只用于阅读,例如无限滚动ans这样的东西,而不是删除、创建和更新操作。

    相关推荐

    尝试在WordPress中实现AJAX注释,遇到WP错误

    我试图在WordPress中为我的评论实现Ajax,使用this tutorial. 但我在将教程中的代码集成到自己的预构建主题时遇到了问题。问题是,我要么得到一个WP错误“检测到重复注释;看来你已经说过了!”或标准500错误。以下是我得到的:下面是我对ajax的评论。js文件如下所示: * Let\'s begin with validation functions */ jQuery.extend(jQuery.fn, { /* * check i