首页 > 解决方案 > 验证 WordPress 上的 textarea 字段

问题描述

我有一个要验证的文本区域:

<form method="POST">
    <textarea id="textarea" name="textarea"></textarea>
</form>

使用 Ajax 发送值:

$.ajax('ajaxurl', {
    method: "POST",
    data: {'action': 'my_action', 'textarea': $('#textarea').val()},
    processData: false,
    contentType: false,
});

functions.php

function my_action(){
    $textarea = $_POST['textarea'];
    if ( !empty( $textarea ) ) {
        global $wpdb;
        $textarea = sanitize_textarea_field($textarea);
        $wpdb->insert( 'data_table', array('textarea' => $textarea), array('%s') );
    }
}

add_action( 'wp_ajax_my_action', 'my_action' );
add_action( 'wp_ajax_nopriv_my_action', 'my_action' );

是否sanitize_textarea_field()足以验证文本区域?还是我做了更多检查?

标签: phpajaxwordpressvalidationsecurity

解决方案


sanitize_textarea_field() 

将执行以下操作

  • 检查无效的 UTF-8
  • 将单个 < 字符转换为实体
  • 剥离所有标签
  • 删除换行符、制表符和多余的空格
  • 带八位字节

虽然从数据的角度来看这应该足够了,但是我建议从安全的角度来看你也应该限制输入的大小。


推荐阅读