Intereting Posts
разрешения на каталог тем Как отобразить персонализированную мета-запись сообщения на странице меню «Внешний вид»> Миграция моего существующего сайта WP на localhost Ajax-вызов с javascript в сообщении (не в очереди) Расширенные настраиваемые поля: Настройте дату начала выбора даты (необходимо выбрать год 1500 и далее) Пользовательский тип почтового типа В основном, противоположный многосайтовый URL-адрес, который задают большинство людей Переупорядочить элементы плагина в меню администратора Как передать данные на страницу wordpress (без параметра GET) Попытка удалить кнопку загрузки на WordPress Native Video Player? meta_query не позволяет показывать сообщения при запросе нескольких аргументов в WP_Query Настроить имена полей на странице редактирования профиля бэкэнда через функцию.php Как скрыть «Фильтровать список пользователей» на экране «Все пользователи» если оператор отображает содержимое, даже если данные отсутствуют Как выбрать порядок сортировки (для сообщений) для каждой категории? (в идеале при создании новой категории)

Безопасность для удаления сообщения 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; }