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

如何用PHP实现表单用户输入的原始HTML仅作为普通文本展示

解决方案

你遇到的是典型的跨站脚本(XSS)注入风险,只需要在输出用户内容到HTML页面时,对特殊字符进行转义即可,无需修改提交入库的逻辑。

具体修改方法

修改展示页面input.php中的输出逻辑,将原有的直接输出代码替换为转义输出的代码即可,修改后的完整代码如下:

<?php
include("connection.php");
$query = "SELECT * FROM table";
$execute = mysqli_query($con, $query);
if ($execute) {
    while ($row = $execute->fetch_assoc()) {
        // 对输出内容进行HTML实体转义
        echo htmlspecialchars($row['column'], ENT_QUOTES);
    }
}
?>

原理解释

  • htmlspecialchars函数会自动把HTML的特殊字符(<、>、"、'、&等)转换为对应的字符实体,比如<会被转换为&lt;,浏览器接收到这些实体后不会将其识别为HTML标签,只会原样展示文本内容。
  • 建议在输出到页面的阶段做转义,不要在存入数据库的阶段转义,这样数据库中存储的是用户原始输入,方便后续导出、接口调用等其他场景的使用。

额外注意事项

你现有的提交代码中SQL语句存在语法错误,插入语句的末尾缺少双引号闭合,修正后写法如下:

$query = "insert into table (column) values('$input')";

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 11:45:01