Безопасность для удаления сообщения Admin

Мой код настолько прост, как когда администратор удаляет сообщение с помощью WordPress fucntion (PHP) и выполняет действия с jQuery

<?php include('../../../../../../wp-config.php'); if(current_user_can('edit_posts')){ $id = $_POST['ID']; wp_delete_post($id); }else{die();} ?> 

Это мой код, что вы думаете о безопасности? достаточно ?

Solutions Collecting From Web of "Безопасность для удаления сообщения Admin"

Сначала прочитайте что-нибудь о WordPress Ajax API и о ролях и возможностях – возможность «edit_posts» имеет даже Contributor . Я бы предложил проверить «delete_others_posts», чтобы доказать, что пользователь по крайней мере является редактором. Или используйте возможности «manage_options» (имеет Administrator, а не Editor).

Кроме того, существует функция проверки ajax referer, чтобы вы могли предотвратить внесение записей вне вашего веб-сайта. Узнайте больше о nonces .

Вот пример из кода на использование nonces, когда в AJAX:

В вашем основном файле установите значение nonce следующим образом:

 <script type="text/javascript"> jQuery(document).ready(function($){ var data = { action: 'my_action', security: '<?php echo $ajax_nonce; ?>', my_string: 'Hello World!' }; $.post(ajaxurl, data, function(response) { alert("Response: " + response); }); }); </script> 

В вашем файле ajax проверьте реферер следующим образом:

 add_action( 'wp_ajax_my_action', 'my_action_function' ); function my_action_function() { check_ajax_referer( 'my-special-string', 'security' ); echo $_POST['my_string']; die; }