Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 这是在wordpress中使用ajax获取内容的安全方法吗?_Php_Ajax_Wordpress_Security_Nonce - Fatal编程技术网

Php 这是在wordpress中使用ajax获取内容的安全方法吗?

Php 这是在wordpress中使用ajax获取内容的安全方法吗?,php,ajax,wordpress,security,nonce,Php,Ajax,Wordpress,Security,Nonce,下面是一些promo模式的工作代码,但这是在ajax请求中使用wordpress nonce的安全和适当的方法吗 在tmp中创建nonce:$ajax\u nonce=wp\u Create\u nonce(“mynonce”); URL示例:www.mysite.com/#345 在上面的php中,get_post_type()使用get_post(),而get_post()使用sanitize_post()-因此正在进行一些验证,目前我的计划是,如果有任何恶意内容附加到URL或通过客户端的其

下面是一些promo模式的工作代码,但这是在ajax请求中使用wordpress nonce的安全和适当的方法吗

在tmp中创建nonce:$ajax\u nonce=wp\u Create\u nonce(“mynonce”); URL示例:www.mysite.com/#345

在上面的php中,get_post_type()使用get_post(),而get_post()使用sanitize_post()-因此正在进行一些验证,目前我的计划是,如果有任何恶意内容附加到URL或通过客户端的其他方式发送,那么$theid将设置为我的白名单数字“876”-那么我是否需要在客户端或php中执行其他验证


感谢您的帮助,谢谢

WordPress就是这样做的,尽管你用来验证的参数是错误的。第一个参数是用于创建nonce('mynonce')的字符串。第二个参数是查询参数,而不是值,因此应该是“nonce”。上面的代码是根据bobdye编辑的-感谢反馈-从$.ajax更改为$.post,并使用check_ajax_referer()而不是wp_verify_nonce();这是更好的方法吗?
var asdf = location.hash.match(/^#?(.*)$/)[1];
if (asdf) {
    $productID = asdf; 
    if ($.cookie("modalshow") === undefined) {
        var expiryDate = new Date();
        var minutes = 0.20; //12 seconds
        expiryDate.setTime(expiryDate.getTime() + (minutes * 60 * 1000)); 
        $.cookie("modalshow", "exists", { path: '/', expires: expiryDate });
        var data = {
            action: 'my_action',
            product_id: $productID,
            security: '<?php echo $ajax_nonce; ?>'
        };
        var ajaxurl = '/wp-admin/admin-ajax.php';
        $.post(ajaxurl, data, function(response) {
                $(".modal-content").append(response);
                $('#Modal').modal({ show:true });
        });
    } //no cookie
};//if match
add_action( 'wp_ajax_my_action', 'my_action_function' );
function my_action_function() {
    check_ajax_referer( 'mynonce', 'security' );
    if( isset($_POST['product_id']) ) {
        $my_report_num = $_POST['product_id']; // splash 443
        $myposttype = get_post_type( $my_product_num );
        if ( get_post_status( $my_product_num ) == 'publish' && $myposttype == "df_product" ) {
            //we're good
            $theid = $my_product_num;
        } else {
            $theid = "876";
        }
        //fedtch content using $theid
        die();
        } // end if
    die;
}