为什么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攻击呢?


详情 请查看:毛毛虫的小小蜡笔

 

posted @ 2022-04-28 17:51  simonbaker  阅读(431)  评论(0编辑  收藏  举报