在WordPress上验证textarea字段

时间:2018-09-09 13:54:39

标签: php ajax wordpress validation security

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

<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()是否足以验证文本区域?还是我要再检查一些?

1 个答案:

答案 0 :(得分:0)

sanitize_textarea_field() 

将执行以下操作

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

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