主题选项中wp_EDITOR的安全验证

时间:2012-05-10 作者:mrwweb

所以我觉得这个很棒WPSE thread about security for themes/plugins. 它回答了我的大多数问题,但它是在新wp_editor() 函数已生成。

我的主题选项上有两个TinyMCE编辑器,我想知道是否需要使用esc_html()esc_textarea() 保存主题选项之前,在验证回调中。在我看来,TinyMCE处理了很多这方面的事情(以及处理的设置API安全性),但仍然没有太多关于wp_editor().

欢迎提供任何资源和答案。

2 个回复
最合适的回答,由SO网友:helenhousandi 整理而成

esc_html()esc_textarea() 是与它们的名称相适应的转义函数,实际上是用于显示,而不是用于清理或验证。我会使用wp_kses()wp_kses_post() (这只是wp_kses() 与全球$allowedposttags) 清理来自wp_editor() 保存前先输入字段。

SO网友:bueltge

TinyMCE有一个过滤器,用于过滤所有允许的标记。您可以更改标签,在标准中为您的选项设置了标签,并且编辑器会过滤标签。没有必要在保存后进行过滤。

增强标记示例:

function fb_change_mce_options( $initArray ) {
    // Comma separated string od extendes tags
    // Command separated string of extended elements
    $ext = \'pre[id|name|class|style],iframe[align|longdesc|name|width|height|frameborder|scrolling|marginheight|marginwidth|src]\';
    if ( isset( $initArray[\'extended_valid_elements\'] ) ) {
        $initArray[\'extended_valid_elements\'] .= \',\' . $ext;
    } else {
        $initArray[\'extended_valid_elements\'] = $ext;
    }
    // set tiny paramter verify_html
    $initArray[\'verify_html\'] = true;
    return $initArray;
}
add_filter( \'tiny_mce_before_init\', \'fb_change_mce_options\' );
您还可以过滤标记,数组中的所有标记$initArray 是允许的。从数组中删除标记很容易。unset( $initArray[\'pre\'] )

通过读取阵列中的项目var_dump( $initArray );

最好的

结束

相关推荐

在自定义字段中自动嵌入Vimeo/YouTube(tinyMCE编辑器)

我在我的页面上使用了两个额外的TinyMCE编辑器,在我的主题页面中添加额外的文本字段。我现在意识到,内容交付的思想自定义字段不支持自动嵌入功能。因此,我需要告诉WordPress在这两个额外的自定义字段上启用它。下面是我的函数中包含的后端部分的一个示例。php文件: function monster_meta_options() { global $post; $custom = get_post_custom($post->ID); $mon