我正在开发一个站点,它将从jquery发送到PHP的多个ajax调用发送到PHP并将数据从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帖子,调用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
}
}
感谢
答案 0 :(得分:3)
代码似乎很好,我想唯一要注意的是,你如何处理$ id的意外值,我想默认在这个开关中可以正常工作。