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 ポストを受け取り、request_handler() を呼び出します。
add_action("wp_ajax_nopriv_request_handler", "request_handler"); add_action("wp_ajax_request_handler", "request_handler");
request_handler() は nonce をチェックし、投稿 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 } }
ありがとう