有人可以解释何时使用转义功能吗?
我的目标是保护我的Wordpress主题。我使用了Chris Coyier的空白主题, 并添加了代码以创建所需的网站。我注意到其他主题都使用了转义功能, 但没有使用Coyier的空白主题, 因此我想了解在何处插入这些主题。
在阅读了Codex和google结果并研究了几个主题的代码后, 我仍然不清楚何时使用
esc_url()
esc_attr()
esc_html()
我看不到何时使用这些的模式。例如, 在一个主题中, 对于home_url(‘ /’ )—请注意, 在header.php中使用了esc_url, 但在searchform.php中没有使用esc_url —为什么?
header.php
<
a href=
http://www.srcmini.com// NOTICE ESCAPING FUNCTION BELOW"<
?php echo esc_url( home_url( '/' ) );
?>
"
title="<
?php echo esc_attr( get_bloginfo( 'name', 'display' ) );
?>
" rel="home">
<
?php bloginfo( 'name' );
?>
<
/a>
searchform.php
<
form role="search" method="get" id="searchform" action=
// NO ESCAPING FUNCTION BELOW
"<
?php echo home_url( '/' );
?>
"
>
#1转义功能可防止攻击和怪异角色。函数执行的一些操作是删除无效字符, 删除危险字符并将字符编码为HTML实体。
问题在于, 不受信任的数据不仅来自用户, 还可能来自保存在你自己的数据库中的数据。
通常, 当Wordpress函数未生成URL的任何部分时, 最好使用转义函数。如果整个URL仅由Wordpress函数生成, 则不需要转义函数。
例如, 如果你要打印URL并添加这样的查询字符串
<
?php echo get_permalink() . '?order=time' ?>
你应该习惯使用转义功能, 因为你键入了一些实际的URL。
<
?php echo esc_url(get_permalink() . '?order=time') ?>
【esc_url()和WordPress安全性()】不过, 最好像这样使用add_query_string函数
<
?php echo add_query_arg('order', 'time', get_permalink()) ?>
在第二个示例中, 你将不需要转义功能, 因为URL完全由Wordpress函数生成。
在问题的示例中, header.php文件中不需要转义功能。编写该代码的人可能只是习惯于这样做, 即使不需要它, 也可以将其放在那里。
开始阅读有关数据验证的一个好地方是在Wordpress Codex上:https://codex.wordpress.org/Data_Validation
#2你需要对任何用户插入的内容使用wordpress转义功能, 而对于wordpress功能则不需要。但是在插件, 模板, 表单或类似的东西中, 你需要使用转义功能。
#3你需要对任何用户插入内容使用wordpress转义功能, 如John所说..
看看我提供的有关wordpress转义功能的链接。
WordPress Escape Functions
推荐阅读
- 获取并显示附带的视频wordpress
- 根据类别WordPress获取帖子
- 回溯算法小细节
- 独立集与顶点覆盖相互规约问题
- Vertex cover reduces to set cover
- linux操作指南-03
- 每日开源 | 一个 Java 接口快速开发框架(magic-api)
- Planar graph and map 3-colorability reduce to one another
- XML – E4X概述