用 AI 编程工具生成 HTML 报告:先转义外部文本,避免把标签当页面结构

用 AI 编程工具写HTML报告时,外部文本可能含 script 标签或看起来像标签的内容。报告模板的结构由开发者固定,数据作为文字插入并转义,不能直接拼成HTML。

用 AI 编程工具写HTML报告时,外部文本可能含<script>或看起来像标签的内容。报告模板的结构由开发者固定,数据作为文字插入并转义,不能直接拼成HTML。

让AI写HTML报告脚本的读者。本文使用 Python 3.11 或以上版本的标准库,先验证一组人工构造的小样本。AI 负责提出实现或解释差异,结果由本地检查决定;这里没有把模型回答当成真实运行结果。

用 AI 编程工具生成 HTML 报告:先转义外部文本,避免把标签当页面结构

核对HTML报告文本转义前,先定规则

本例仅把外部标题放进h2文本、说明放进p文本,两个位置都是HTML文本上下文。

用html.escape(text,quote=True)转换;模型生成模板时不得删掉转义,也不能把输入标为“可信HTML”。

程序检查生成的标签节点只含h2/p,危险输入仍作为数据出现;没有在浏览器执行或做完整XSS扫描。

给 AI 的输入要包含什么

把下面这份输入说明和你的实际样本一起交给可用的 AI 编程助手。示例只含虚构数据;对真实材料先去除账号凭据和个人信息。

固定报告模板<h2>标题</h2><p>说明</p>,标题和说明来自外部输入;用html.escape转义后插入。构造script文本及img onerror文本,通过HTMLParser确认没有script/img节点,不打开执行页面。

要求模型保留检查条件,并把它认为缺少的业务定义列出来。若回答改变了输入字段、忽略异常分支或直接删除原材料,先要求修正,再运行。提示词的作用是缩小任务范围,验收仍以代码和数据为准。

保存并运行最小验证程序

下方程序把关键规则和验证用例放在同一个可复跑示例中,便于先理解输入如何变成输出,再用它检查 AI 给出的实现。

新建一个空目录,把下面代码保存为 check.py,在该目录打开终端,运行 python -X utf8 check.py。代码自带示例输入,不需要安装第三方库。

from html import escape
from html.parser import HTMLParser
title='<script>alert("sample")</script>'
note='<img src=x onerror="sample"> & 原文'
report='<h2>'+escape(title,quote=True)+'</h2><p>'+escape(note,quote=True)+'</p>'
class Tags(HTMLParser):
    def __init__(self): super().__init__();self.tags=[]
    def handle_starttag(self,tag,attrs): self.tags.append(tag)
parser=Tags();parser.feed(report)
assert parser.tags==['h2','p']
assert '&lt;script&gt;' in report and '&lt;img' in report and '&amp;' in report
print('actual_tags',parser.tags)
print('escaped_report',report)

怎样判断结果符合要求

解析到的真实标签只有h2/p,script/img保留为转义文本,&也被转义。此样本没有打开浏览器执行。

下方是这份最小示例在本地执行得到的输出。它验证示例程序与断言的关系,不代表任何 AI 模型一次就能生成同样代码,也不构成性能或生产可靠性结论。

actual_tags ['h2', 'p']
escaped_report <h2>&lt;script&gt;alert(&quot;sample&quot;)&lt;/script&gt;</h2><p>&lt;img src=x onerror=&quot;sample&quot;&gt; &amp; 原文</p>

此方法只说明固定HTML文本上下文。JavaScript、CSS、URL属性有不同规则,不能靠escape覆盖所有位置。

真实富文本需要可靠的白名单清理器,不应该先unescape再放回页面。

哪些失败必须停下来处理

HTMLParser检查不是浏览器安全证明,不宣称全面阻止XSS。

报告来源链接还需协议及地址范围校验,不能把javascript:URL当普通文本转义后就允许跳转。

接入自己的任务前再核对一次

给AI明确结构与数据边界,把转义断言留在报告生成流程。

对真实报告检查标题、正文和链接分别进入的上下文,采用项目已有模板自动转义。

资料与适用范围

html.escape可以转义&、<、>并默认转义引号;转义需要与输出上下文对应。以下链接核对于 2026-10-03;运行环境及额外依赖按本文前述说明。

相关基础可阅读 用 DeepSeek 写 HTML 页面:制作报名表并验证必填、邮箱与键盘操作。本文的重点是核对HTML报告文本转义,可以把两项检查作为不同步骤保留。

Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/33505.html

赞 (0)
AI小管家的头像AI小管家
爬虫智能体任务流怎样停止重复翻页?记录页面身份与数量上限,再合并已见记录
上一篇 1小时前
让 AI 排序版本号为什么 v10 排在 v2 前?定义数字段规则,并拒绝混合格式
下一篇 1小时前

相关推荐

联系我们

联系我们

1

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
关注微信
分享本页
返回顶部