【发布时间】:2012-12-12 17:56:36
【问题描述】:
我正在开发一个网站,该网站发布了一些从 jquery 到 PHP 的 ajax 调用,并将数据从 PhP 返回到 jquery。
一切正常,但我想知道我处理电话的方法是否正常,关于安全性,以及我是否可以采取或记住任何进一步的安全措施。
运行我的流程;
functions.php 文件
-
设置 wp_localize_script() 并将 ajax url 和 nonce 的变量传递给它 -
wp_localize_script( 'main', 'WP', array( 'AJAX_URL' => admin_url( 'admin-ajax.php'), 'NONCE' => wp_create_nonce( 'ajax_custom_nonce' ) ));
myscript.js 文件
-
在我的 js 文件中,我使用 jquery 发送了我的帖子请求;
$.ajax({ type : "post", url: WP.AJAX_URL, data: ({action : 'request_handler', id : 'content_id', nonce : WP.NONCE }), success: function(data) {} })
ajax.php 文件
-
ajax.php文件接收ajax post,调用request_handler();
add_action("wp_ajax_nopriv_request_handler", "request_handler"); add_action("wp_ajax_request_handler", "request_handler"); -
request_handler() 检查 nonce,获取 post 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 } }
谢谢
【问题讨论】:
标签: php wordpress security jquery