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

Sti*_*ers 7 wordpress sanitization escaping

何时绝对需要或使用逃避功能的良好实践?

如使用esc_url();:

get_template_directory_uri();
get_permalink();
get_author_posts_url();
get_edit_post_link();
wp_get_attachment_url();
Run Code Online (Sandbox Code Playgroud)

esc_html();与:

get_the_title();
get_the_author();
get_the_date();
get_search_query();
Run Code Online (Sandbox Code Playgroud)

另外我觉得esc_html();esc_attr();很相似,不是吗?有什么区别?

Sti*_*ers 6

第1部分

根据文档 - WP VIP 团队的验证、消毒和逃逸

指导原则

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

“逃离不仅仅是为了防止坏人。它只是让我们的软件经久耐用。对抗随机的不良输入、恶意输入或恶劣天气。” –nb

第2部分

根据文章 - WordPress 前端安全简介:安迪·亚当斯 (Andy Adams) 从 CSS-Tricks 中逃脱

功能: esc_html

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

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

功能: esc_attr

用于:在 HTML 属性上下文中使用的输出(想想“title”、“data-”字段、“alt”文本)。

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