MST

星途 面试题库

面试题:Python字符串插值安全过滤:复杂场景处理

在一个Web应用场景下,用户输入的数据需要插入到HTML模板中(例如`<p>{}</p>`)。不仅要防止XSS攻击,还要考虑不同类型数据(如数字、日期等)的正确格式化显示。已知用户输入数据存储在`user_data`变量中,且`user_data`可能为字典形式包含多种类型数据。请编写一个通用函数`safe_insert`实现安全的字符串插值并插入到HTML模板中,返回安全的HTML片段。
17.0万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
import html
from datetime import datetime


def safe_insert(template, user_data):
    new_data = {}
    for key, value in user_data.items():
        if isinstance(value, datetime):
            new_data[key] = value.strftime('%Y-%m-%d %H:%M:%S')
        elif isinstance(value, int) or isinstance(value, float):
            new_data[key] = str(value)
        else:
            new_data[key] = html.escape(str(value))
    return template.format(**new_data)