存在XSS漏洞
存在XSS payload:
<EMBED SRC="data:image/svg+xml;base64,PHN2ZyB4bWxuczpzdmc9Imh0dH A6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hs aW5rIiB2ZXJzaW9uPSIxLjAiIHg9IjAiIHk9IjAiIHdpZHRoPSIxOTQiIGhlaWdodD0iMjAw IiBpZD0ieHNzIj48c2NyaXB0IHR5cGU9InRleHQvZWNtYXNjcmlwdCI+YWxlcnQoIlh TUyIpOzwvc2NyaXB0Pjwvc3ZnPg==" type="image/svg+xml" AllowScriptAccess="always"></EMBED>
@Leeport 嗯,好的,感谢提醒,这些安全性相关的,确实还没给予处理;会尽快修复类似漏洞。
这个问题 Vditor 已经修复,可以考虑同步一波。
@88250 赞👍,将尽快同步。
@88250 发布了嘛?我引用的[email protected] 还是存在这个问题,可以弹出XSS
@nicejade 老哥,我最近做一个 https://coldemo.js.org/ 是一个demo gallery站点,今天把vditor和arya也加了进去,还望许可 😆
轩轩大
@fritx 麻烦给我一下 Markdown 原文,谢谢
@88250 https://github.com/nicejade/markdown-online-editor/issues/7#issue-476750687 就把楼主的这段粘贴进我的这个页面 https://coldemo.js.org/#/playground/vditor-rich.md 的editor里 能弹出XSS
页面里加载的是[email protected] 调用的.preview()方法 PS:我把vditor和arya也加了进去,还望许可 😆
调用的源码在这里 ~~https://github.com/coldemo/gallery.code/blob/master/src/playground/codeTransform.ts#L95-L134~~ (https://github.com/coldemo/gallery.code/blob/master/src/playground/codeTransform.ts#L95-L136)
@fritx 分屏预览模式下默认没有开启过滤,可通过 vditor.lute.SetSanitize(true) 来开启。具体可参考 https://github.com/88250/lute/issues/51
赞,感谢,刚没仔细看到默认不开启,我试试
@88250 window.Lute (1.3.3) 没有这个方法,vditor (3.2.0)上也没lute这个引用
github code 搜 lute.setsanitize 只有一处go的结果,暂时没有其他js参考 https://github.com/search?q=lute.setsanitize&type=Code
@fritx
const vditor = new Vditor()
vditor.vditor.lute.SetSanitize

@Vanessa219 我引的[email protected] 截图里 new 出来的示例上 也不存在 viditor或lute这两个属性 而且我的场景只调了Vditor.preview这个静态方法 😅
@fritx https://github.com/Vanessa219/vditor/issues/376