好吧,为了图片的完整性,我想提一下,有两个地方你可以在金字塔中清理用户输入 - 在进行中,在将数据保存到数据库之前,以及在出路之前,在渲染数据之前模板.可以说,将HTML/JavaScript存储在数据库中没有任何问题,只要您确保模板中呈现的所有内容都被正确转义,它就不会让您感到困惑.
事实上,Chameleon和Mako模板引擎都默认启用了HTML转义功能,所以如果你"像往常一样"使用它们,你将永远不会将用户输入的HTML注入到你的页面中 - 相反,它将被渲染为文本.如果没有这个,清理用户输入将是一项艰巨的任务,因为您需要检查用户输入数据的每个单独表单中的每个字段(即不仅是"方便"的textarea小部件,还包括其他所有内容 - 用户名,用户电子邮件等).
因此,您必须做一些不寻常的事情(或使用其他模板库)才能使Pyramid以这种方式运行.如果您提供有关正在使用的模板库和代码示例的更多详细信息,我们将能够找到以正确方式修复它的方法.