search

Home  >  Q&A  >  body text

javascript - 怎样消除 Markdown 的 XSS 漏洞?

<script> 标签如果没包括在代码当中就会刷新成页面, CNode 用了 Github 的 Showdown.js 就出了这样的问题, 有什么办法可以去除漏洞?

黄舟黄舟2817 days ago832

reply all(3)I'll reply

  • 天蓬老师

    天蓬老师2017-04-10 12:44:21

    后来 CNode 的解决方案是写了新的模块专门进行白名单处理: https://github.com/leizongmin/js-xss

    reply
    0
  • ringa_lee

    ringa_lee2017-04-10 12:44:21

    在文本交给Markdown之前,处理下:

    • 去掉<script>
    • 移除onclick,onerror一类的handler
    • 按照html标签的黑名单或者白名单过滤下(控制哪些标签可以保留)
    • 过滤html标签的属性

    自己实现还挺麻烦,但做这类事情的库很多:

    • http://code.google.com/p/google-caja/
    • http://htmlpurifier.org/

    reply
    0
  • PHP中文网

    PHP中文网2017-04-10 12:44:21

    <script>alert('123')</script>

    <script>alert('123')</script>
    

    reply
    0
  • Cancelreply