esc_url,esc_html,esc_attr ...函数的用法

时间:2015-01-19 17:08:29

标签: wordpress escaping sanitization

何时需要或使用转义函数的良好实践?

例如使用esc_url();

get_template_directory_uri();
get_permalink();
get_author_posts_url();
get_edit_post_link();
wp_get_attachment_url();

esc_html();与:

get_the_title();
get_the_author();
get_the_date();
get_search_query();

另外我认为esc_html();esc_attr();非常相似,不是吗?有什么区别?

1 个答案:

答案 0 :(得分:4)

第1部分

根据WP VIP团队的文档 - Validating, Sanitizing, and Escaping

指导原则

  1. 永远不要相信用户输入。
  2. 尽可能晚地逃跑。
  3. 从不受信任的来源(如数据库和用户),第三方(如Twitter)等中逃避一切。
  4. 永远不要假设任何事情。
  5. 永远不要相信用户输入。
  6. 卫生是可以的,但验证/拒绝更好。
  7. 永远不要相信用户输入。
  8.   

    “逃离不仅仅是为了防止坏人。它只是让我们的软件持久耐用。防止随机输入错误,恶意输入或恶劣天气。“-nb

    第2部分

    根据文章 - 来自CSS-Tricks的Andy Adams的Introduction to WordPress Front End Security: Escaping the Things

      

    功能:esc_html

    用于:输出中绝对没有HTML的输出。

    它的作用:将HTML特殊字符(例如<>&)转换为“转义”实体(&lt;&gt;&amp;)。

      

    功能:esc_attr

    用于:在HTML属性的上下文中使用输出(想想“标题”,“数据 - ”字段,“alt”文本)。

    它的作用:与esc_html完全相同。唯一的区别是不同的WordPress过滤器应用于每个功能。