Need a help on sanitization

时间:2017-03-05 作者:Ponvendhan

我在评论中有一个主题,我确实在像这样的少数情况下添加了“type”=>“select”部分。

$wp_customize->add_setting( \'personal_lite_post_link\', array(
        \'default\' => \'enable\',
        \'sanitize_callback\' => \'personal_lite_select_callback\'
    ) );
    $wp_customize->add_control(\'postlink-options\', array(
        \'label\' => esc_html__(\'Post navigation\', \'personal-lite\'),
        \'section\' => \'personal_lite_post\', 
        \'settings\' => \'personal_lite_post_link\',
        \'type\' => \'select\', 
        \'choices\' => array(\'enable\' => esc_html__(\'Enable\', \'personal-lite\'), \'disable\' => esc_html__(\'Disable\', \'personal-lite\'))
    ) );
像这样消毒

function personal_lite_select_callback($input) {
    $valid = array(
        \'lightslategrey\' => esc_html__(\'Grey\', \'personal-lite\'),
        \'seagreen\' => esc_html__(\'Green\', \'personal-lite\'),
        \'enable\' => esc_html__(\'Enable\', \'personal-lite\'),
        \'disable\' => esc_html__(\'Disable\', \'personal-lite\'),
    );
    if (array_key_exists($input, $valid)) {
        return $input;
    } else {
        return \'\';
    }
}
现在,审阅者要求将消毒分为两个功能?如何做到这一点?

以下是评论员的确切说法。

I\'m a fan of whitelisting for sanitization. However, this function should be broken into two separate functions:

Only some settings can have some of those keys. Make sure the setting is valid by using the appropriate whitelist function for that setting.
如何解决这个问题?请帮帮我。

1 个回复
SO网友:WPExplorer

老实说,对于“选择”字段来说,选择什么来清理字段并不重要,事实上,如果用户想要过滤您的设置以向“选择”字段添加新选项,那么您正在做什么我认为不是一个好主意。更重要的是,您希望清理作为字符串值的输出。因此,我认为最好使用wp\\u strip\\u all\\u标记,甚至esc\\u html进行清理回调。您的输入仍将被清除恶意代码,但也允许通过子主题进行更轻松的调整。

但根据您的审阅者告诉您的内容,您很可能在自定义程序中使用personal\\u lite\\u select\\u回调函数用于多个选择选项,其中一些选项具有不同的值,因此他们希望您为每个选项创建一个新函数。

相关推荐

WordPress select query issue

正在尝试从中提取所有数据wp_postmeta 桌子我想先去拿meta_key 列值。因此,我正在运行此查询。当我使用print_r 然后显示所有数据,但当我使用foreach循环时,它不工作。<?php global $wpdb; $myrows = $wpdb->get_results( \"SELECT * FROM wp_postmeta\" ); foreach($myrows as $value){ echo $value->sleep