html - 防止来自 django tinymce 的危险用户输入
问题描述
假设我们想使用 tinymce 来允许用户输入 HTML 格式的输入。django-tinymce 包是一个方便的解决方案。
但是为了稍后将其渲染为输出,我们必须使用 {{ userinput | 安全 }} 来显示它。但是我们知道原始用户的输入是……安全的吗?
我们尤其需要警惕和清理哪些恶意 HTML 标签?在保护将呈现“安全”用户输入的未来网站用户的同时,不去除 tinymce 使用的合法标签的合理策略是什么?
解决方案
您永远不能假设提供给您客户端的数据是“干净的”或“安全的”。如果恶意人员的目标是对您的系统造成损害,他们可以绕过您的前端及其所有验证。
您应该始终适当地配置您的前端。验证数据,将 TinyMCE 配置为仅允许您想要创建的那些类型的标签等。
但是,无论前端设计如何,您总是必须重新检查服务器上提交的内容以确保安全。根本没有办法解决这种需求。什么构成“安全”可能是基于您的应用程序做什么以及谁使用它的业务决策。
您可以使用许多不同的库在服务器端进行这种验证/清理,因此根据您的特定服务器端设置(猜测 PHP),您可以找到允许您“清理/净化”提交的 HTML 的库。
推荐阅读
- javascript - Vuex - 多次分派后运行功能
- javascript - 如何将 javascript 变量从单独的 Javascript 文件放入 HTML 表中?
- javascript - 达到角度插值的嵌套变量
- mysql - 如何从表中获取基于月份和年份的记录?
- assembly - 如何检查寄存器是否具有偶数值?
- android - `EditText`不会调整它的位置,当键盘弹出时`ToolBar`内容会消失
- spring - 弹簧反应堆清单
> 序列到单声道 - >
- assembly - 如何将用户输入与预设字符进行比较以查看它们是否相同?
- embedded - 如何知道 I2C 总线在多主环境中是否忙?
- reactjs - 在 Redux 中向 URL API fetch 添加多个参数?