安全地允许WordPress自定义Metabox字段

时间:2015-12-25 03:05:36

标签: php html wordpress validation

我在page帖子类型中创建了一个自定义Metabox,允许用户写一些描述。 (或者他想要的任何东西。它可以包含链接,装饰文本,甚至图像)。

但是,当我将它们回显到前端时,它只输出整个文本而不呈现HTML。这是因为我输出post meta时使用的esc_attr()过滤功能。

!empty($page_data['desc']) ? esc_attr($page_data['desc']) : 0

HTML删除后正确呈现。

!empty($page_data['desc']) ? $page_data['desc'] : 0

那么,使用esc_attr()是否至关重要?如何允许某些HTML标记而不会产生安全漏洞。?

1 个答案:

答案 0 :(得分:0)

是的,如果你想拥有一个安全的网站,你需要逃避用户输入。

有几种选择:

  • 编写自己的转义器,允许某些标签转义(不好的方法,这不能保证安全,因为你不是专家)

  • 编写自己的模板引擎,将标记转换为HTML(不好的方法,你应该使用现有的)

  • 使用现有的模板引擎或标记语言,降价可以很棒

  • 使用模板引擎和WYSIWYG编辑器以获得更好的用户体验