export default {
// <script></script>
data() {
return {
text: "<script></script>"
}
}
}
- 发布:2020-08-17 17:58
- 更新:2020-08-17 21:00
- 阅读:1466
产品分类: uniapp/H5
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: 10.14.6
HBuilderX类型: 正式
HBuilderX版本号: 2.8.6
浏览器平台: Chrome
浏览器版本: 81
项目创建方式: HBuilderX
示例代码:
操作步骤:
复现1:在js代码中定义一个字符串,其中包含<script></script>
的子串,发行的编译阶段将会报错
复现2:在js代码中任意位置添加注释 // <script></script>
,发行的编译阶段也将会报错
复现1:在js代码中定义一个字符串,其中包含<script></script>
的子串,发行的编译阶段将会报错
复现2:在js代码中任意位置添加注释 // <script></script>
,发行的编译阶段也将会报错
预期结果:
字符串中包含<script></script>
时可以正确解析
注释带有<script></script>
时可以正确解析
字符串中包含<script></script>
时可以正确解析
注释带有<script></script>
时可以正确解析
实际结果:
非有效的<script></script>
不能正确解析
非有效的<script></script>
不能正确解析
bug描述:
在vue页面script代码中再次出现script时,编译将会报语法错误
复现1:在js代码中定义一个字符串,其中包含<script></script>
的子串,发行的编译阶段将会报错
复现2:在js代码中任意位置添加注释 // <script></script>
,发行的编译阶段也将会报错
全盘崩坏 (作者)
我也知道<script>属于语法标记,但是前提是他是有效的啊,在注释中的任何东西对编译器来说本就是没有任何意义的,仅仅是对开发者提供帮助而已,显然注释中的代码参与编译,这属于编译漏洞,包括字符串中出现的<script>也一样的,他实质就是字符串,并不是有效的js代码但是字符串内容却参与了语法解析,希望还是可以修复这两个编译漏洞
2020-08-18 17:05