JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 145
  • Score
    100M100P100Q75095F
  • License MIT

一个开箱即用的Vue.js插件,可通过简单的方式防止XSS攻击

Package Exports

  • vue-xss
  • vue-xss/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (vue-xss) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

vue-xss

npm version language file size LICENSE

一个开箱即用的Vue.js插件,可通过简单的方式防止XSS攻击

有任何问题欢迎发布 issue,我会在看到后第一时间回复大家。如果觉得还不错的话,不要吝啬你的 star 哦~

安装

推荐使用npm安装

npm i vue-xss

使用

// main.js
import VueXss from 'vue-xss'
Vue.use(VueXss)
<!-- *.vue -->
<div v-html="$xss(content)"></div>

自定义配置项

支持 js-xss 的自定义规则,可通过 options 对象形式传入实例, 具体请点击 js-xss 查看

示例

// mani.js
var options = {
  // 默认白名单参考 xss.whiteList
  whiteList: {
    a: ['href', 'style'],
    img: ['src', 'alt'],
    ...
  },
  stripIgnoreTag: true, // 去掉不在白名单上的标签   true:去掉不在白名单上的标签
  stripIgnoreTagBody: ['script', 'style'] // 去掉不在白名单上的标签及标签体   ['tag1', 'tag2']:仅去掉指定的不在白名单上的标签
  onTagAttr: function () {
    // todo
  },
  ...
}

import VueXss from 'vue-xss'
Vue.use(VueXss, options)
<!-- *.vue -->

<template>
  <div v-html="$xss(content)"></div>
  <!-- 过滤后输出:<iframe></iframe> -->
<template>

<script>

export default {
  data () {
    return{
      content: '<iframe onload=alert("XSS-TEST")></iframe>'
    }
  },
  ...
}

</script>

鸣谢

感谢 js-xss 作者的支持 @ leizongmin

LICENSE

MIT