需求:项目需要把一段富文本内容(html标签),渲染到页面上。考虑v-html不是很安全,有被xss攻击的隐患,就很犹豫。希望大佬帮我解答下v-html和innerhtml有什么差别,怎么动态插入html标签比较安全。万分感谢!!!
2 回答
慕姐8265434
TA贡献1813条经验 获得超2个赞
楼上同学回答的已经很明确了,假设你现在有两段需要渲染的html片段,一段是正常的一段包含恶意代码。那么你现在用vue能怎么做才能保证安全?其实答案比较明确了,vue并不能保证只渲染安全的代码,你只能自己检测代码片段的安全性,保证需要利用v-html渲染的代码都是安全的。问题要从源头来解决,既然是客户端提交的代码片段,你在提交之前后者提交之后就应该进行过滤了,把不安全的代码剔除或者禁止上传。如果无法从源头解决问题,难么就只能自己来解决这个问题,在你进行页面渲染之前不管是通过js还是你后台检测必须先把哪些不安全或者不合法的片段过滤掉。理论上这个是源头来解决的,不安全的代码直接存到数据库明显是不对的。如果你要自己解决,就得自己写代码进行安全检查,检查后再进行渲染。据我所知vue没有现成得解决方案处理这类问题。
添加回答
举报
0/150
提交
取消