CATS
138.50M · 2026-02-04
markupsafe 是一个用于处理标记语言(如HTML、XML)字符串的 Python 库。 它可以帮助你:
markupsafe 广泛应用于以下实际场景:
pip install markupsafe
# 如果安装慢的话,推荐使用国内镜像源
pip install markupsafe -i
转义用户输入以防止XSS攻击
from markupsafe import escape, Markup
# 用户输入,可能包含恶意脚本
user_input_raw = "<script>alert('您被攻击了!')</script>"
is_admin = True # 假设有一个条件判断用户是否是管理员
# 使用escape转义用户输入
safe_output = escape(user_input_raw)
# 打印转义后的结果
print(f"转义后的内容: {safe_output}")
# 假设有一些信任的HTML内容,我们不希望它被转义
trusted_html = Markup("<b>这是加粗的文本</b>")
# 如果是管理员,则直接显示原始输入(这里仅为演示,实际应用需极其谨慎)
if is_admin:
print(f"管理员显示(危险!):{user_input_raw}")
else:
# 否则显示安全的内容
print(f"普通用户显示(安全!):{safe_output}")
# 结合使用,Markup标记的内容不会被二次转义
formatted_output = Markup(f"<p>Hello, {safe_output}!</p>")
print(f"组合后的安全HTML: {formatted_output}")
# 检查是否是Markup实例
if isinstance(formatted_output, Markup):
print("formatted_output 是一个 Markup 实例,已被标记为安全。")
else:
print("formatted_output 不是 Markup 实例。")
使用 PythonRun 在线运行这段代码,结果如下:
转义后的内容: <script>alert('您被攻击了!')</script>
管理员显示(危险!):<script>alert('您被攻击了!')</script>
组合后的安全HTML: <p>Hello, <script>alert('您被攻击了!')</script>!</p>
formatted_output 是一个 Markup 实例,已被标记为安全。
使用 MermaidGo 绘制示例代码的流程图,结果如下: