在 以下是如何在 1. 生成 Nonce 并添加到表单中
在表单中添加 Nonce 字段,确保每个表单提交都包含一个唯一的 Nonce。 在处理表单提交的 PHP 代码中,验证 Nonce 是否有效。 如果你使用 AJAX 请求,也可以在 AJAX 请求中添加 Nonce。 除了 Nonce 验证,你还可以考虑以下安全措施: 通过这些方法,你可以有效地防止机器请求和其他安全威胁。<form method="post" action="">
<?php wp_nonce_field('my_action_name', 'my_nonce_field'); ?>
<input type="text" name="my_field" value="">
<input type="submit" value="Submit">
</form>2. 验证 Nonce
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// 检查 Nonce 是否存在且有效
if (!isset($_POST['my_nonce_field']) || !wp_verify_nonce($_POST['my_nonce_field'], 'my_action_name')) {
// Nonce 验证失败,处理错误
wp_die('Security check failed');
}
// Nonce 验证成功,继续处理表单数据
$my_field_value = sanitize_text_field($_POST['my_field']);
// 处理表单数据...
}3. 在 AJAX 请求中使用 Nonce
前端 JavaScript
jQuery(document).ready(function($) {
var data = {
action: 'my_ajax_action',
my_nonce: '<?php echo wp_create_nonce('my_ajax_nonce'); ?>',
my_field: 'some_value'
};
$.post('<?php echo admin_url('admin-ajax.php'); ?>', data, function(response) {
console.log(response);
});
});后端 PHP
add_action('wp_ajax_my_ajax_action', 'my_ajax_handler');
add_action('wp_ajax_nopriv_my_ajax_action', 'my_ajax_handler');
function my_ajax_handler() {
// 检查 Nonce 是否存在且有效
if (!isset($_POST['my_nonce']) || !wp_verify_nonce($_POST['my_nonce'], 'my_ajax_nonce')) {
wp_send_json_error('Security check failed');
}
// Nonce 验证成功,继续处理 AJAX 请求
$my_field_value = sanitize_text_field($_POST['my_field']);
// 处理数据...
wp_send_json_success('Request processed successfully');
}4. 其他安全措施
current_user_can() 函数检查用户是否有权限执行操作。sanitize_text_field()、esc_url() 等函数对用户输入进行过滤和验证。
© 版权声明
文章版权归本站所有,未经允许请勿转载。
THE END
喜欢就支持一下点个赞吧









暂无评论内容