如何在 PHP 输出字符串中修复“网页中与脚本相关的 HTML 标签的不正确中和(基本 XSS)”
Posted
技术标签:
【中文标题】如何在 PHP 输出字符串中修复“网页中与脚本相关的 HTML 标签的不正确中和(基本 XSS)”【英文标题】:How to fix “Improper Neutralization of Script-Related HTML Tags in a Web Page (Basic XSS)” in PHP output string 【发布时间】:2017-12-17 22:56:41 【问题描述】:我有以下 php 代码
<?php
$Output = '<table><thead><tr>';
$Output .= '<th>Display</th></tr></thead><tbody>';
for ($k = 0; $k < count($ColumnsInSQL); $k++)
$Output .= '<tr><td>'.$KS_ResultSet_level[$k][strtoupper(trim($ColumnsInSQL[$k]))].'</td></tr>';
$Output .= '</tbody></table>';
echo $Output;
?>
最近我在 Veracode 中运行代码,我遇到了"echo $Output;"
的问题。
谁能帮我解决这个问题?
【问题讨论】:
你遇到了什么问题? 在验证码扫描中,我遇到“网页中与脚本相关的 html 标记的不正确中和(基本 XSS)”问题 @Barmar,您的回答有效。非常感谢。 【参考方案1】:使用htmlentities()
对变量数据中的特殊字符进行编码。
$Output .= '<tr><td>'.htmlentities($KS_ResultSet_level[$k][strtoupper(trim($ColumnsInSQL[$k]))]).'</td></tr>';
【讨论】:
以上是关于如何在 PHP 输出字符串中修复“网页中与脚本相关的 HTML 标签的不正确中和(基本 XSS)”的主要内容,如果未能解决你的问题,请参考以下文章
如何修复 Veracode - 跨站点脚本 - CWE ID 80 - 基本 XSS - 在 .each 函数中使用 $(item)