HI,欢迎您光临本站,秉承服务宗旨,销售只是起点,服务永无止境!
    • 短视频文案
      • 励志哲理
      • 名言美句
      • 情感语录
      • 回复热评
      • 解说文案
    • 短视频素材
      • 情感励志
      • 美食小吃
      • 体育运动
      • 生活人文
      • 妙招好物
      • 风景风光
      • 影音娱乐
      • 颜值时尚
      • 游戏动漫
      • 自然景观
    • 短视频课程
      • 同城课程
      • 带货课程
      • 投放课程
      • 玩法课程
    • 中视频素材
    • 短视频工具
    • 副业项目
资源分享吧
  • 首页
  • CMS模板host
    • DEDECMS模板965
    • 易优CMS318
    • WordPress模板146
    • Discuz模板101
    • 帝国CMS102
    • 苹果cms78
    • Pbootcms24
    • zblog模板2
  • 整站源码
    • 教育/交友/直播76
    • 商城/淘宝/网店26
    • 门户/论坛/信息27
    • 小说/新闻/博客76
    • 电影/视频/音乐22
    • 图片/素材/下载49
    • 支付/金融/货币356
    • 导航/目录/友链25
    • 会员/推广/任务57
    • 公众号/小程序/游戏133
  • 一元夺宝new
    E启学在线网校网站在线教育校园教学平台程序系统V1.0源码
    E启学在线网校网站在线教育校园教学平台程序系统V1.0源码
    Laravel开发MeEdu在线点播网站源码 知识付费应用系统源码
    Laravel开发MeEdu在线点播网站源码 知识付费应用系统源码
    一比一精仿电影挖片网苹果cmsv10模板
    一比一精仿电影挖片网苹果cmsv10模板
    织梦高仿dede58织梦模板下载站完整无错整站版源码 1.69GB打包
    织梦高仿dede58织梦模板下载站完整无错整站版源码 1.69GB打包
    蓝色清晰织梦资源网下载站源码
    蓝色清晰织梦资源网下载站源码
    全景通旗舰版最新源码 内核到krpano1.19pr8 支持任何高清图
    全景通旗舰版最新源码 内核到krpano1.19pr8 支持任何高清图
    thinkPHP音视频素材资源下载站整站源码 带会员系统+支付接口
    thinkPHP音视频素材资源下载站整站源码 带会员系统+支付接口
    仿集图网模板图片素材类模板织梦下载站源码带整站数据
    仿集图网模板图片素材类模板织梦下载站源码带整站数据
    织梦蓝色图纸展示类企业网站源码
    织梦蓝色图纸展示类企业网站源码
    Thinkphp5.0响应式进销存仓库管理系统源码
    Thinkphp5.0响应式进销存仓库管理系统源码
    prev
    next
  • 网页素材
    • 网页游戏148
    • 网页模板4723
    • 特效代码5467
  • 办公素材
    • PPT模板377
    • 简历模板0
  • 站长学院
    • DEDE教程352
    • wordpress教程416
    • SEO教程124
    • 其它文档教程13
  • 更多
    • 办公教程4
    • 群辉教程12
    • 电脑基础7124
    • GPS导航
    • 安卓系统15
      • Android资讯2
      • ROM0
      • 教程工具0
    • Win系统169
      • Windows XP3
      • Windows 77
      • Windows 80
      • Windows 1012
      • 服务器系统1129
      • Win主题12
      • Win教程26
      • Win资讯0
      • Win软件98
    • 站点标签
    • 更新日志
    • 其他10
登录/注册
  • 精品会员专享
  • 会员折扣下载
  • 每日海量更新
立即开通 开通会员抄底价
当前位置:资源分享吧 > WordPress开发中使用esc_html()等函数转义输出以提高安全性
也想出现在这里? 联系我们吧

WordPress开发中使用esc_html()等函数转义输出以提高安全性

作者 : 小编 本文共3359个字,预计阅读时间需要9分钟 发布时间: 2020-07-31 共1.41K人阅读
也想出现在这里? 联系我们吧

作为一名WordPress开发者,除了需要具备功能开发的能力,还要具备对产品安全性的保障能力,这些都需要在不断的开发实践中不断提高。今天我们就来一起学习WordPress开发中使用esc_html()等函数转义输出以提高安全性。

规则1:不要信任任何人和事

当我们谈论转义时,通常是关于我们从数据库中获得的信息。但是请记住,该数据库不是受信任的数据源。让我给你看一个例子:

echo ‘<label for=”‘ . $id . ‘”>’ . $label . ‘</label>’; …

我们在HTML属性中有一个$label变量,在HTML标签中有另一个变量。假设它的值来自数据库,并且包含以下内容:

‘<script>window.location = “https://not-rudrastyh.com”;</script>’

无需以表格形式显示标签(label),您的网站用户将被重定向到一些阴暗的网站。看起来有些恐怖吧!

同样的事情也适用于HTML属性中的$id变量。比如:

‘”><script>window.location = “https://not-rudrastyh.com”;</script>’

重定向造成的结果对你来说可能不算严重,但是如果有某种比特币挖掘脚本怎么办?

规避方法

为了防止在上面的示例中发生此类问题,我们要做的就是将输出内容中使用esc_attr()和esc_html() 相应地包装一下。方法如下:

echo ‘<label for=”‘ . esc_attr( $id ) . ‘”>’ . esc_html( $label ) . ‘</label>’; …

太好了,现在您已经了解了基础知识,让我们继续进行。

什么时候需要转义?

这是一个很好的问题,因为在WordPress的官方文档中,有人说 WordPress的某些功能负责准备输出数据,并举例the_title()说明了这些功能。

让我们现在检查一下!我目前没有说过要更改phpMyAdmin中的标题,这当然也是可能的,所以让我们创建一个标题如下的文章:

在使用the_title()或get_the_title()打印标题的网站页面上,我们得到了以下信息:

但请注意,尽管它使用相同的get_the_title()功能来打印标题,但网站后台/wp-admin中的文章列表WP_Posts_List_Table并未损坏。

在WordPress管理页面中,函数get_the_title()通过esc_html()这种方式进行了转义:

add_filter( ‘the_title’, ‘esc_html’ );

WordPress在真正重要的地方转义了一切,同时当我们谈论网站前端时,它为用户提供了自由。

这就是我的想法 – 您可以选择在创建自定义主题的模板时决定是否转义标题等,但是如果您正在开发插件或WordPress管理员的某种UI界面,则转义是永远是必须的。

从函数名称可以理解,它为HTML属性中的用法准备了数据。

esc_attr()

删除不正确的utf8字符,

将< (小于)、> (大于)、& (与)、” (双引号)和’(单引号)字符转换为HTML实体,

永远不会对实体进行双重编码。

例如:

echo ‘<a href=”” title=”View post: ‘ . esc_attr( get_the_title() ) . ‘”>…’;

还可以使用过滤钩子attribute_escape添加其他转义。

请记住:

请勿使用esc_attr()来转义src、href属性的数据– 而是使用esc_url(),

也不要将其用于value属性,因为它可能导致HTML实体丢失和数据库中存储的值不正确,请改用esc_textarea()。这是因为esc_attr()不会对实体进行双重编码。

esc_html()

准备在HTML中使用的文本。与esc_attr()函数的唯一区别在于,它有一个连接到函数输出的过滤器钩子- esc_html而不是attribute_escape。

示例 – 假设您有一个类似的字符串<div class=”block”>,并且想要在网站内容中显示它。

$string = ‘<div class=”block”>’;

echo esc_html( $string ); // 输出 <div class=”block”>

esc_url()

检查/尝试修复和清理网址。以下是转义顺序:

用%20替换空格,

删除网址中不允许使用的符号,例如反斜杠,

如果URL协议是mailto:,从使用私有函数_deep_replace()排除符号%0d、%0a、%0D、%0A等字符串,这意味着字符串%0%0%0AAA将被转换为空字符串,而不是str_replace()将返回的%0%0AA ,

将替换;//为://,防止万一发生错误的情况,

如果该网址不包含方案,除非该URL 是一个以/,#或?或php文件开头的相对链接,否则将添加前缀http://。

如果第三个函数参数$_context等于display(默认情况下),则&符号将替换为&,并将单引号替换为英文的’,

用%5B和%5D编码方括号。

检查是否允许使用URL协议,如果不允许-返回空字符串,

在最后,将clean_url滤镜挂钩应用于结果。

echo ‘<a href=”‘ . esc_url( $url ) . ‘”>…</a>’;

允许的协议

默认情况下,WordPress列出了可以使用函数wp_allowed_protocols()检索的良好协议,如下:

http / https

ftp / ftps

mailto

news

irc

gopher

nntp

feed

telnet

mms

sms

rtsp

svn

tel

fax

xmpp

webcal

urn

如上所述,如果您的网址既不是相对网址,也不包含任何这些协议,则将返回空字符串。但是,如果您想转义这样的Skype链接skype:rudrastyh?call怎么办?

您可以使用此过滤器挂钩kses_allowed_protocols将“ skype”添加到允许的协议列表中。例:

add_filter( ‘kses_allowed_protocols’, function( $protocols ) {

$protocols[] = ‘skype’;

return $protocols;

});

另一种方法是在转义时直接指定协议:

$url = ‘skype:rudrastyh?call’;

echo ‘<a href=”‘ . esc_url( $url, array( ‘skype’ ) ) . ‘”>Call Misha</a>’;

esc_js()

转义字符串以用作内联JavaScript,例如onclick=””,onsubmit=””或在<script>标记内。请注意,在这种情况下,JavaScript中的文本字符串必须始终用单引号引起来!

删除不正确的utf8字符,

转义单引号’,

将< (小于)、> (大于)、& (与)、” (双引号)字符转换为HTML实体< > & ” ,

在行末添加\n。

您现在看到了esc_js()和esc_attr()之间的区别吗?

让我们看一个例子:

<?php

$text = “some single ‘ quote

then the next line and <b>html code</b>”;

?>

<script>

alert(‘<?php echo esc_js($text) ?>’);

</script>

如果您不打算在此示例中使用esc_js(),将出现JavaScript错误并且没有发生任何事情,但是在我们的情况下,我们在浏览器中收到如下警告消息:

esc_textarea()

为<textarea>标签内的用法准备一个字符串。

将< (小于)、> (大于)、& (与)、” (双引号)和’(单引号)字符转换为HTML实体

支持本地化翻译

还值得一提的是,对应的支持本地化翻译的函数:esc_html__(),esc_html_e(),esc_html_x(),esc_attr__(),esc_attr_e(),esc_attr_x()这不仅是翻译字符串,同时也转义它们。

esc_html_e( ‘Hello World’, ‘some_text_domain’ );

// 和下面的效果一样

echo esc_html( __( ‘Hello World’, ‘some_text_domain’ ) );

wordpress教程
1. 本站所提供的源码模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: rayer@88.com),我们会及时删除,给您带来的不便,我们深表歉意!
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布投稿,分享有金币奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务 请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长,可领回失去的金币,并额外有奖!
6. 如遇到加密压缩包,默认解压密码为"www.zyfx8.cn",如遇到无法解压的请联系管理员!
本站部分文章、资源来自互联网,版权归原作者及网站所有,如果侵犯了您的权利,请及时联系我站删除。免责声明
资源分享吧 » WordPress开发中使用esc_html()等函数转义输出以提高安全性

常见问题FAQ

免费下载或者VIP会员专享资源能否直接商用?
本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
织梦模板使用说明
你下载的织梦模板并不包括DedeCMS使用授权,根据DedeCMS授权协议,除个人非盈利站点外,均需购买DedeCMS商业使用授权。购买地址: http://www.desdev.cn/service-dedecms.html
小编

小编 VIP

分享到:
上一篇
WordPress 5.5+如何过滤存档页面标题?
下一篇
WordPress添加字段添加到自定义分类法项目

发表评论 取消回复

要发表评论,您必须先登录。

最新文章
餐饮火锅加盟网站pbootcms模板源码
餐饮火锅加盟网站pbootcms模板源码
源码下载新闻资讯博客网站pbootcms模板
源码下载新闻资讯博客网站pbootcms模板
绿色人造草坪地坪施工网站源码pbootcms模板
绿色人造草坪地坪施工网站源码pbootcms模板
红色火锅加盟网站pbootcms模板源码
红色火锅加盟网站pbootcms模板源码
蓝色源码钢结构工程基建网站pbootcms模板
蓝色源码钢结构工程基建网站pbootcms模板
标签云
DEDECMS (483) dedecms教程 (326) eyoucms (270) html (364) html5 (1717) html模板 (733) Linux (1245) linux教程 (1245) wordpress教程 (380) 下载 (277) 代码 (816) 企业网站模板 (874) 企业网站模板下载 (874) 免费企业网站模板 (874) 入侵防御 (270) 公司网站模板 (874) 切换 (502) 动画 (594) 国内网站模板 (324) 图片 (582) 技术网络漏洞 (347) 插件 (447) 效果 (765) 源码 (381) 漏洞 (371) 漏洞分析 (347) 特效 (789) 电脑使用 (4064) 电脑操作 (4064) 短视频素材 (606) 笔记本电脑价格 (4037) 笔记本电脑品牌排行 (4037) 笔记本电脑知识 (4037) 笔记本电脑评测 (4037) 素材 (483) 织梦 (407) 织梦教程 (342) 网站模板 (436) 网站源码 (417) 网站漏洞检测 (347) 网络安全WEB漏洞 (347) 菜单 (299) 视频 (376) 这是 (345) 鼠标 (417)

限时优惠

【阿里云】云产品采购季,助力行业复工。新用户专享1折起,云服务器低至0.75折,更多产品可叠加专属代金券下单
立即查看

相关推荐

如何显示WordPress定时发布文章列表?
小编小编

如何显示WordPress定时发布文章列表?

很多站长想要在显著的位置放一个提示,告诉读者马上会有什么文章发布,如何实现呢?我们就一起看看如何显示WordPress定时发布文章列表?
  • 1.43K
  • 免费
  • 下载
WordPress网站将js代码放置在哪里?
小编小编

WordPress网站将js代码放置在哪里?

WordPress网站将js代码放置在哪里?一般情况下,js代码header.php或footer.php文件中添加js文件调用代码。
  • 1.35K
  • 免费
  • 下载
WordPress防止内容复制/禁止右键/禁止F12插件WPCopyRights
小编小编

WordPress防止内容复制/禁止右键/禁止F12插件WPCopyRights

WordPress防止内容复制/禁止右键/禁止F12插件WPCopyRights介绍:一般我们应对网站防止内容被复制会通过JS、CSS代码加入到网站中
  • 1.76K
  • 免费
  • 下载
WordPress如何禁用缩略图自动裁剪功能从而节约网站空间?
小编小编

WordPress如何禁用缩略图自动裁剪功能从而节约网站空间?

WordPress网站在上传图片及特色图像的时候都会通过WordPress上传图像都会按比例裁剪成多个小尺寸图片,这样做时候为了适应不同设备上的图片显示,但是现在很多WordPress主题会有自适应功能,所以缩略图自动裁剪功能就没用了,所以就需要屏蔽,...
  • 1.23K
  • 免费
  • 下载
  • 3088本站运营(天)
  • 62856用户总数
  • 26548资源数(个)
  • 2近7天更新(个)
  • 82301资源大小(GB)
加入VIP获取全站资源

「资源分享吧」 ZYFX8.CN

国内极具人气的网络源码资源交流学习平台
下载源码文章,学软件教程,找灵感素材,尽在「资源分享吧」

按Ctrl+D收藏本站

找资源就上「 资源分享吧 」

WWW.ZYFX8.CN

资源分享吧

资源分享吧(www.zyfx8.cn)是一家专门做精品素材的网站,网站以网站源码、网站模板、网页特效为主要内容,以“共享创造价值”为理念,以“尊重原创”为准则。

本站导航
  • 热门标签
  • 网站专题
  • 站点地图
更多导航
  • 申请友链
  • 用户协议
  • 免责声明
快速搜索
    友情链接 自助申请友链
  • RiTheme主题
  • wordpress主题
  • 在线PS修图
  • 源码下载
  • 网站模板
  • 资源分享吧
Copyright 2015-2020 版权所有 资源分享吧 Rights Reserved. 蜀ICP备14022927号-1
资源分享吧(www.zyfx8.cn)是一家专门做精品素材的网站,以“共享创造价值”为理念,以“尊重原创”为准则。
  • 会员特惠
  • 签到
  • 客服

    在线客服

    点我联系

    直接说出您的需求!
    切记!带上资源链接与问题!

    工作时间: 9:30-21:30

  • 更新
    日历
  • 全屏
  • 首页

  • 签到

  • 切换

  • 客服

资源分享吧
  • 登录
  • 注册
or
or
忘记密码?
资源分享吧
  • 首页
  • CMS模板host ►
    • DEDECMS模板965
    • 易优CMS318
    • WordPress模板146
    • Discuz模板101
    • 帝国CMS102
    • 苹果cms78
    • Pbootcms24
    • zblog模板2
  • 整站源码 ►
    • 教育/交友/直播76
    • 商城/淘宝/网店26
    • 门户/论坛/信息27
    • 小说/新闻/博客76
    • 电影/视频/音乐22
    • 图片/素材/下载49
    • 支付/金融/货币356
    • 导航/目录/友链25
    • 会员/推广/任务57
    • 公众号/小程序/游戏133
  • 一元夺宝new
    E启学在线网校网站在线教育校园教学平台程序系统V1.0源码
    E启学在线网校网站在线教育校园教学平台程序系统V1.0源码
    Laravel开发MeEdu在线点播网站源码 知识付费应用系统源码
    Laravel开发MeEdu在线点播网站源码 知识付费应用系统源码
    一比一精仿电影挖片网苹果cmsv10模板
    一比一精仿电影挖片网苹果cmsv10模板
    织梦高仿dede58织梦模板下载站完整无错整站版源码 1.69GB打包
    织梦高仿dede58织梦模板下载站完整无错整站版源码 1.69GB打包
    蓝色清晰织梦资源网下载站源码
    蓝色清晰织梦资源网下载站源码
    全景通旗舰版最新源码 内核到krpano1.19pr8 支持任何高清图
    全景通旗舰版最新源码 内核到krpano1.19pr8 支持任何高清图
    thinkPHP音视频素材资源下载站整站源码 带会员系统+支付接口
    thinkPHP音视频素材资源下载站整站源码 带会员系统+支付接口
    仿集图网模板图片素材类模板织梦下载站源码带整站数据
    仿集图网模板图片素材类模板织梦下载站源码带整站数据
    织梦蓝色图纸展示类企业网站源码
    织梦蓝色图纸展示类企业网站源码
    Thinkphp5.0响应式进销存仓库管理系统源码
    Thinkphp5.0响应式进销存仓库管理系统源码
    prev
    next
  • 网页素材 ►
    • 网页游戏148
    • 网页模板4723
    • 特效代码5467
  • 办公素材 ►
    • PPT模板377
    • 简历模板0
  • 站长学院 ►
    • DEDE教程352
    • wordpress教程416
    • SEO教程124
    • 其它文档教程13
  • 更多 ►
    • 办公教程4
    • 群辉教程12
    • 电脑基础7124
    • GPS导航
    • 安卓系统15 ►
      • Android资讯2
      • ROM0
      • 教程工具0
    • Win系统169 ►
      • Windows XP3
      • Windows 77
      • Windows 80
      • Windows 1012
      • 服务器系统1129
      • Win主题12
      • Win教程26
      • Win资讯0
      • Win软件98
    • 站点标签
    • 更新日志
    • 其他10
文章展示
交易所源码搭建教程java多语言部署
交易所源码搭建教程java多语言部署
餐饮火锅加盟网站pbootcms模板源码
餐饮火锅加盟网站pbootcms模板源码
源码下载新闻资讯博客网站pbootcms模板
源码下载新闻资讯博客网站pbootcms模板
绿色人造草坪地坪施工网站源码pbootcms模板
绿色人造草坪地坪施工网站源码pbootcms模板
红色火锅加盟网站pbootcms模板源码
红色火锅加盟网站pbootcms模板源码
蓝色源码钢结构工程基建网站pbootcms模板
蓝色源码钢结构工程基建网站pbootcms模板
开通VIP 享更多特权,建议使用QQ登录
账号登录/注册
QQ登录
微博登录
×

    回馈用户限时特惠

    「 资源分享吧 」国内极具人气的网络资源交流学习平台,海量资源每天更新,优质资源畅快下载

    终身SVIP原价 590元,国庆限时活动价仅需 “ 59元 ”,终身免费~~机不可失~~


    立即开通永久会员>>

    an** 刚刚下载了 2020最新酷睿