【发布时间】:2018-12-30 17:50:58
【问题描述】:
我得到了一些混合了 html + javascript + css 的(可能是恶意的)模板 (内联或作为外部链接)在“字符串”中
<!-- well known libs -->
<link href="//cdn/foolib.min.css" rel="stylesheet">
<script src="//cdn/foolib.min.js"></script>
<!-- this is the core of the template -->
<div>foo</div>
<style>body {}</style>
<script src="//cdn/foolib2.min.js"></script>
<link href="//cdn/foolib2.min.css" rel="stylesheet">
<script>
...javascript code...
</script>
<div id='foo'></div>
<style>#foo {}</style>
我想将其分解为 3 个“字符串”(或其他更方便的数据结构),其中包含纯 html、脚本、css (有点像你在所有 jsfiddle 克隆中找到的 3 个窗口)
html
<div>foo</div>
<div id='foo'></div>
脚本
<script src="//cdn/foolib.min.js"></script>
<script src="//cdn/foolib2.min.js"></script>
<script>
...javascript code...
</script>
css
<link href="//cdn/foolib.min.css" rel="stylesheet">
<style>body {}</style>
<link href="//cdn/foolib2.min.css" rel="stylesheet">
<style>#foo {}</style>
我想我必须解析字符串并进行 AST 和进程,但有人可以提示我。
【问题讨论】:
标签: javascript parsing abstract-syntax-tree