假设我们要使用tinymce允许用户输入HTML格式的输入。 django-tinymce软件包是一个方便的解决方案。
但是要稍后将其呈现为输出,我们必须使用{{userinput |安全}}进行显示。但是我们是否知道一个事实,即原始用户的输入是...安全的?
我们需要特别警惕和清理的恶意HTML标签有哪些?在保护将来会收到“安全”用户输入的网站用户时,不剥夺tinymce利用的合法标签的合理策略是什么?
答案 0 :(得分:0)
您永远不能假定提供给您客户端的数据是“干净的”或“安全的”。如果邪恶的人的目标是对您的系统造成损害,他们可以绕过您的前端和所有验证。
您应该始终正确配置前端。验证数据,将TinyMCE配置为仅允许您要创建的那些类型的标签,等等。
但是,无论前端设计如何,为了安全起见,始终必须在服务器上重新检查提交的内容。根本无法解决这种需求。构成“安全”的因素可能取决于您的应用程序的用途和使用者。
您可以使用许多不同的库来使用服务器端进行这种验证/清除,因此,根据您特定的服务器端设置(猜测PHP),您可以找到允许您“清理/净化”提交的HTML的库。