Vue.js 内容安全策略拒绝v-html中的XSS攻击

Vue.js 内容安全策略拒绝v-html中的XSS攻击,vue.js,content-security-policy,Vue.js,Content Security Policy,我希望在我的Nuxt.js.vue文件中有一个响应头:仅内容安全策略报告:脚本src'self''unsafe inline'。下面是我的片段 <template> <div> <span v-html="xss"></span> </div> </template> <script> export default { data() { return { xss:

我希望在我的Nuxt.js.vue文件中有一个响应头
仅内容安全策略报告:脚本src'self''unsafe inline'
。下面是我的片段

<template>
  <div>
    <span v-html="xss"></span>
  </div>
</template>

<script>
export default {
  data() {
    return { xss: '<b onmouseover=alert("Wufff!")>click me!</b>' }
  }
}
</script>

导出默认值{
数据(){
返回{xss:'单击我!'
}
}

我原以为从浏览器悬停在
span
上不会导致
警报
,但它仍然会发出警报,尽管只有
内容安全策略报告

,我不能评论,所以我发布了答案,因为我完全不理解这个问题(我听说xhtml存在,从未听说过vhtml)<代码>无法防止XSS攻击。这会触发XSS


不要使用
作为缓解措施。您应该阅读
不安全内联
策略的功能。正如它的名字所说,它允许攻击者在该页面上编写任何脚本。因此,您永远不应该使用
不安全的内联
来减轻XSS攻击。仅使用
self
或您信任的其他来源。简而言之,
不安全内联
是黑客的福音。顾名思义,这是一项不安全的政策

此主题更适合于security.stackexchange.com
nuxt头盔模块为我完成了这项任务。只需在numxt.config.js中添加下面的代码片段

   helmet: {
     contentSecurityPolicy: {
       directives: {
         defaultSrc: ["'self'"],
         scriptSrc: ["'self'", "'unsafe-eval'"]
       }
     }
   }

你是说我应该删除我的
内容安全策略
中的
不安全内联
?当然。正如它的名字所说,这是危险的(不安全的),相反,使用self