为什么vue v-html不执行script代码?
文章不易,请关注公众号 毛毛虫的小小蜡笔,多多支持,谢谢。
问题
有个朋友问了个问题:
为啥vue中的v-html不会执行<script>中的js代码?
比如,给v-html赋予下面这个值,虽然看到DOM中有值,但却不会弹窗。
<script>alert(/xss/)</script>
解释
可能他还不知道,这个不是vue的限制,而是html5中的规定。
html5中为了安全起见,不会执行innerHTML中插入的<script>的代码。
所以,如果想给v-html赋值<script>的代码,虽然能看到在dom中成功展示,但却不会执行<script>中的js代码的。
那v-html能否防御xss攻击?
既然v-html都不会执行<script>的js代码,那能否防御xss攻击呢?
详情 请查看:毛毛虫的小小蜡笔