You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WP插件审核团队要求审查代码,恳请协助排查问题原因

WordPress插件代码安全修正

我的原始代码

<li class="tab-switcher" <?php echo ($atts['font_family'] != "disabled") ? 'style="font-family: Verdana,Arial,sans-serif;"' : ''?>>
     <span onclick="clickTabHead(event, '<?php echo esc_js($category->slug);?>')"  class="catname <?php if($count==1){echo esc_js('active');}?>" role="tab" data-toggle="tab"><?php echo esc_js($category->name);?></span>
     </li>

审核团队评论

注意:必须使用符合上下文的最合适函数。几乎所有要输出的内容都有对应的安全输出选项,包括安全输出HTML。

审核指出的问题代码片段:

tabbed-posts/tabbed_posts.php:64: <span onclick="clickTabHead(event, '<?php echo $category->slug;')" role="tab" data-toggle="tab"><?php echo $category->name;</span>
tabbed-posts/tabbed_posts.php:83: <div id="<?php echo $category->slug;">

问题分析与修正方案

核心问题:转义函数使用不匹配上下文

WordPress安全规范要求根据输出场景选择对应转义函数,不同环境不能混用:

  • HTML标签内的文本内容:用esc_html(),比如分类名称的展示
  • HTML属性值:用esc_attr(),比如class、id这类属性的赋值
  • JavaScript代码环境:用esc_js(),比如onclick事件里传递的参数

修正后的完整代码

<li class="tab-switcher" <?php echo ($atts['font_family'] != "disabled") ? 'style="font-family: Verdana,Arial,sans-serif;"' : ''?>>
    <span onclick="clickTabHead(event, '<?php echo esc_js($category->slug);?>')" 
          class="catname <?php if($count == 1){echo esc_attr('active');}?>" 
          role="tab" 
          data-toggle="tab">
        <?php echo esc_html($category->name);?>
    </span>
</li>

针对审核提到的第83行代码修正

原代码:

<div id="<?php echo $category->slug;">

修正后:

<div id="<?php echo esc_attr($category->slug);?>">

关键修改点说明

  1. 分类名称输出:将esc_js($category->name)替换为esc_html($category->name),适配HTML文本场景的安全转义
  2. class属性的'active'值:将esc_js('active')替换为esc_attr('active'),符合HTML属性值的转义规范
  3. div的id属性:给$category->slug添加esc_attr()转义,避免特殊字符破坏HTML结构

内容的提问来源于stack exchange,提问作者kalyan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 06:53:30