2012-12-12 75 views
2

我正在開發一個網站,從jQuery發佈一些Ajax調用到PHP,並將數據從PhP返回給jquery。安全 - Ajax和Nonce使用

一切正常,但我想知道如果我的方法來處理電話是好的,關於安全性和如果我可以採取或記住任何進一步的安全措施。

貫穿我的過程;

functions.php文件

  1. 設置wp_localize_script()&通過它的一個AJAX網址和現時的變量 -

    wp_localize_script('main', 'WP', array( 
        'AJAX_URL' => admin_url('admin-ajax.php'), 
        'NONCE' => wp_create_nonce('ajax_custom_nonce') 
    )); 
    

myscript.js文件

  1. 在我的js文件中,我使用jquery發送了我的post請求;

    $.ajax({ 
        type : "post", 
        url: WP.AJAX_URL, 
        data: ({action : 'request_handler', 
         id : 'content_id', 
         nonce : WP.NONCE }), 
        success: function(data) {} 
    }) 
    

ajax.php文件

  1. ajax.php文件接收AJAX後,調用request_handler();

    add_action("wp_ajax_nopriv_request_handler", "request_handler"); 
    add_action("wp_ajax_request_handler", "request_handler"); 
    
  2. request_handler()檢查隨機數,得到的文章ID &運行switch語句來調用所需的功能。

    function request_handler() { 
        // check the nonce 
        $nonce = $_POST['nonce']; 
    
        if (! wp_verify_nonce($nonce, 'ajax_custom_nonce')) 
         die ('busted'); 
    
        $id = $_POST['id']; 
    
        switch ($id) { 
         case 'vimeo_embed': 
          require_once(TEMPLATEPATH . '/library/vimeo.php'); 
          load_vimeo(); 
         break; 
         case 'popup': 
          require_once(TEMPLATEPATH . '/library/popup.php'); 
          load_popup(); 
         break; 
    
         ....etc 
        } 
    } 
    

感謝

回答

3

的代碼似乎罰款,我想觀看的唯一的事情,你是怎麼處理的$ id的異常值,我猜默認會在開關做工精細。