我有一个包含文本和HTML的字符串.我想删除或以其他方式禁用某些HTML标记,例如<script>,允许其他人,以便我可以安全地在网页上呈现它.我有一个允许的标签列表,如何处理字符串以删除任何其他标签?
我已经阅读了一些相关的问题div contenteditable, XSS,但它的答案并没有强调太多关于 contenteditable 的 XSS 安全性。特别是关于意外(与故意跨站点脚本相比)。我当然知道我应该清理用户输入服务器端。
博士 :我可以确定用户不会冒险通过正在设置的页面元素引入一些外部脚本(即通过从剪贴板粘贴的数据)contenteditable?规范是否确保粘贴到 contenteditable 的任何标记在插入到 DOM 之前都经过清理?
我注意到在我测试的两个主要浏览器 Chromium/Chrome 和 Firefox 上,似乎不可能意外地将活动元素 插入contenteditable标签中。例如,我想象的这种附加插入的示例:
contenteditable另一个站点上的元素中。echo "<b onclick='alert("XSS");'>click me</b>" | xclip -t text/html -selection "clipboard"并将其粘贴到contenteditable.一个活动元素可能是这样的:
<script> onclick="alert(\"XSS\");"<a href="javascript:alert(\"XSS\")"> click me </a>现在我的问题是,如果这是设计使然,那么看到 contenteditable 似乎可以避免粘贴任何正常的 XSS 向量?
我已经阅读了一些规范/参考资料/无论它没有明确提到contenteditable应该阻止任何活动元素 …