防止Django Tinymce的危险用户输入



说我们要使用Tinymce允许用户输入HTML格式输入。Django-Tinymce包是一种方便的解决方案。

,但要以后作为输出渲染,我们必须使用{{userInput |安全}}显示它。但是,我们知道原始用户的输入是安全的吗?

我们需要警惕和消毒的恶意HTML标签是什么?不剥离合法标签Tinymce使用的合理策略是什么,同时保护将未来的网站用户将与"安全"用户输入呈现?

您永远无法假设向您的客户端提供的数据是"清洁"或"安全"。邪恶的人可以绕过您的前端及其所有验证,如果他们的目标是对您的系统造成伤害。

您应始终适当配置前端。验证数据,配置Tinymce仅允许您创建的标签类型,等等。

但是,无论前端设计如何,您总是必须重新检查服务器上的内容以确保安全。根本没有任何需求。构成"安全"的是基于您的应用程序和谁使用的业务决定。

有许多不同的库可以使用服务器端进行此类验证/清洁,因此根据您的特定服务器端设置(猜测PHP(,您可以找到允许您"消毒/纯化"提交的HTML的库。

最新更新