什么是 vetted
vetted 是一个开源的 npm 包,它提供了一组有用的函数和工具,用于检查和过滤不良数据,帮助我们提高应用的数据质量,保护用户隐私和安全。
vetted 包含以下模块:
- sanitize:用于过滤和清理 HTML 和文本内容中的不良元素、属性和样式;
- validate:用于验证表单输入和数据格式、类型、长度等;
- encrypt:用于加密和解密敏感数据;
- hash:用于生成和验证哈希值和摘要;
- transform:用于格式化和转换数据类型和结构。
安装和引入
要使用 vetted,我们需要先安装它:
npm install vetted --save
然后,在我们的应用中引入它:
const vetted = require('vetted');
或者,使用 ES6 模块的方式引入:
import { sanitize, validate, encrypt, hash, transform } from 'vetted';
sanitize
sanitize 模块用于过滤和清理 HTML 和文本内容中的不良元素、属性和样式,以防止 XSS 攻击和其他安全漏洞。
sanitize 提供了以下函数:
stripTags(str[, allowed])
:过滤 HTML 标签,默认允许的标签有<b>
、<i>
、<u>
、<em>
、<strong>
、<br>
、<p>
、<a>
和<img>
;stripAttrs(str[, allowed])
:过滤 HTML 属性,默认允许的属性有class
、style
、src
、href
、alt
、title
、target
和rel
;stripStyles(str[, allowed])
:过滤 CSS 样式,默认允许的样式有color
、background-color
、font-size
、font-weight
、font-style
、text-decoration
和text-align
;stripScripts(str[, allowed])
:过滤 JavaScript 代码。
以下是一个示例代码:
-- -------------------- ---- ------- ----- - -------- - - ------------------ -- ----------- ----- ---- - ----------- ----- ------------ ------------------------------ ------------------------------------- ------------------------------------ -------------- -- ------ ----- ---------------------------- ----------------------------------- -- -------------- ----- -- - ---------------------- -------------------- --------------------------------------- -- -----------------
validate
validate 模块用于验证表单输入和数据格式、类型、长度等,以确保数据的正确性和完整性。
validate 提供了以下函数:
isEmpty(value)
:检查值是否为空;isString(value)
:检查值是否为字符串;isNumber(value)
:检查值是否为数字;isBoolean(value)
:检查值是否为布尔值;isArray(value)
:检查值是否为数组;isObject(value)
:检查值是否为对象;isEmail(value)
:检查值是否为有效的电子邮件地址;isURL(value)
:检查值是否为有效的 URL 地址;isIP(value[, version])
:检查值是否为有效的 IP 地址,version 可取值为 4 或 6;isLength(value, min[, max])
:检查值的长度是否在指定范围内,max 可选;isBefore(value, [date])
:检查值是否在指定日期之前,date 可选;isAfter(value, [date])
:检查值是否在指定日期之后,date 可选。
以下是一个示例代码:
-- -------------------- ---- ------- ----- - -------- - - ------------------ -- ------ ------------------------------------- ---------- -- ---- ------------------------------------ -- ---- -------------------------------- -- ----- -- ---- ------------------------------------ ------- ---- ------ -- ---- -- ------ -------------------------------------------------- -- ---- --------------------------------------------------- -- ---- ---------------------------------------- ---- -- ---- ----------------------------------------- ---- -- ---- -- ------ --------------------------------- ------------------- --- --------------------- -- ----- -------------------------------- ------------------- --- --------------------- -- ----
encrypt
encrypt 模块用于加密和解密敏感数据,以保护用户隐私和数据安全。
encrypt 提供了以下函数:
md5(str[, encoding])
:生成指定字符串的 MD5 哈希值,encoding 可取值为 hex、base64 或 latin1;sha1(str[, encoding])
:生成指定字符串的 SHA-1 哈希值,encoding 同上;sha256(str[, encoding])
:生成指定字符串的 SHA-256 哈希值,encoding 同上;aesEncrypt(text, key)
:使用 AES 算法加密指定明文和密钥,输出 Base64 编码的密文;aesDecrypt(text, key)
:使用 AES 算法解密指定密文和密钥,输出原文字符串。
以下是一个示例代码:
-- -------------------- ---- ------- ----- - ------- - - ------------------ -- ----- ------------------------------- -------- -------- -- -------------------------------- -------------------------------- -------- ----------- -- ---------------------------- ---------------------------------- -------- ----------- -- -------------------------------------------- -- ------ ----- --------- - ------- -------- ----- --- - ------- ----- ----- ---------- - ----------------------------- ----- ----- ------------- - ------------------------------ ----- ------------------------ -- -------------------------------------------- --------------------------- -- ------ ------
hash
hash 模块用于生成和验证哈希值和摘要,以保证数据的完整性和可靠性。
hash 提供了以下函数:
crc32(str)
:生成指定字符串的 CRC32 哈希值;adler32(str)
:生成指定字符串的 Adler32 哈希值;sha256Hash(str[, options])
:生成指定字符串的 SHA-256 摘要,options 可以指定编码、输出格式和哈希次数;sha512Hash(str[, options])
:生成指定字符串的 SHA-512 摘要,options 同上;verifyHash(str, hash[, options])
:验证指定字符串是否与哈希值匹配,options 同上。
以下是一个示例代码:
-- -------------------- ---- ------- ----- - ---- - - ------------------ -- ----- ------------------------------ ---------- -- --------- -------------------------------- ---------- -- ----- -- ---- ----- ---- - ------- -------- ----- ---------- - --------------------- - --------- ------ ------- ------ ---------- - --- ----- ---------- - --------------------- - --------- ------ ------- ------ ---------- - --- ------------------------ -- ---------------------------------------------------------------- ------------------------ -- ------------------------------------------------------------------------------------------------------------------------------- -- ----- ----- ------- - --------------------- ----------- - --------- ----- --- --------------------- -- ----
transform
transform 模块用于格式化和转换数据类型和结构,以适应不同的业务需求和数据源。
transform 提供了以下函数:
capitalize(str)
:将字符串的第一个字符转换为大写;uppercase(str)
:将字符串中的所有字符转换为大写;lowercase(str)
:将字符串中的所有字符转换为小写;reverse(str)
:将字符串中的所有字符反转;escapeXML(str)
:转义 XML/HTML 实体字符;unescapeXML(str)
:恢复 XML/HTML 实体字符;toArray(obj)
:将对象转换为数组;toObject(arr)
:将数组转换为对象;flatten(arr)
:将多维数组转换为一维数组;groupBy(arr, key)
:将数组按指定键名分组。
以下是一个示例代码:
-- -------------------- ---- ------- ----- - --------- - - ------------------ -- --------- ----- --- - ------- -------- --------------------------------------- -- ------ ------ -------------------------------------- -- ------ ------ ---------------------------------------- -- ------ ------ ------------------------------------ -- ------ ------ ----- --- - ----------------- -------------------------------- -------------------------------------- -- ---------------------------- ------------------------------------------------------ --------------------------------------------------------------- ---------------------------------------------------------- -- ---------------- ------------------------------ ----- --- - --- --- --- ------- ------------------------------------ -- --- -- -- -- ----- ---- - - ------ ------- ---- ---- ------ ------- ---- ---- ------ ------- ---- ---- -- ----------------------------------- -------- -- ---- ------- ------- ---- ----- --- ------- ------- ---- ----- --- ------- ------- ---- -----
总结
vetted 是一个实用的 npm 包,它提供了多个模块和函数,用于检查和过滤不良数据、验证表单输入和数据格式、类型、长度等、加密和解密敏感数据、生成和验证哈希值和摘要、以及格式化和转换数据类型和结构。我们可以根据自己的业务需求和数据源选择合适的函数,提高应用的数据质量,保护用户隐私和安全。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005539581e8991b448d0c8e