我们的遗留应用程序最初设计为允许为可自定义的页面存储任何html标记。这些页面的想法是存储客户需要的任何HTML,然后在某些时候有可能呈现这个HTML数据。
此方法允许用户存储任何XSS。我们当前的目标是定义和实施不允许存储任何XSS的策略。
根据一些预定义的规则,我们已经研究了几种能够清理html的方法:
但这两种方法都是基于卫生而非验证。所以基本情况可能如下所示:
- 用户输入一些要输入的数据
- 对用户输入进行清理并检查是否与原始(初始 - 步骤1)用户输入相等。
- 如果认为有任何差异,则认为失败。
醇>
此方法适用于新数据。如果是遗留数据,我们会遇到几个问题:
- 如果用户遗留数据包含禁用元素,则用户无法保存稍微修改过的html内容版本。
- 以下流程会让用户感到困惑:
- 用户编辑包含有关新定义的政策的禁止标签/内容的旧数据。
- 用户替换所有内容并保存。
- 用户出于某种原因决定恢复旧版本
- 不允许用户保存以前的版本,因为它包含禁止的标签/内容。
醇>
所以出现以下问题:
- 验证恶意html元素和XSS向量的用户输入的最佳方法是什么?
- 哪种方法可用于修复遗留数据中提到的问题?
醇>