敏感参数过滤器
sensitive-param-filter 是一个零依赖性包,旨在从 JavaScript 对象过滤敏感值.
此软件包可用于在输出到UI前去除日志,文件数据等.
配备了敏感参数过滤器的默认值对于大多数应用程序来说应行之有效.
安装
通过 npm 为您的工程安装敏感- param- filter :
npm install @amaabca/sensitive-param-filter
线条 :
yarn add @amaabca/sensitive-param-filter
使用量
const { SensitiveParamFilter } = require('@amaabca/sensitive-param-filter')
const paramFilter = new SensitiveParamFilter()
const rawObject = {
Authorization: 'Bearer somedatatoken',
body: {
info: '{ "amount": 28.64, "credit_card": "4242424242424242", "cvv": "123" }'
},
method: 'POST',
url: 'https://pay.example.com?user=bob.bobbington&password=asecurepassword1234'
}
const filteredObject = paramFilter.filter(rawObject)
// filteredObject = {
// Authorization: 'FILTERED',
// body: {
// info: '{ "amount": 28.64, "credit_card": "FILTERED", "cvv": "FILTERED" }'
// },
// method: 'POST',
// url: 'https://pay.example.com?user=bob.bobbington&password=FILTERED'
// }
细节
敏感-param-filter 检查密钥以确定要过滤的值.
密钥匹配以对大小写不敏感、部分大写的方式进行( 如果参数) AUTH 提供, Authorization, (中文(简体) ), AUTHENTICATION等将被过滤).
关键特性
- 不修改输入对象
- 执行输入对象的深层复制( 布尔、 数字和字符串- 不可改变的- 技术上通过引用复制)
- 可配置过滤出或离开“ 意外” 对象( 如函数)
- 处理循环参考
- 过滤有效的 JSON 字符串
- 过滤无效和错误的 URL 查询参数
- 过滤出错、矩阵、地图、集和简单对象
选项
const { SPFDefaultParams, SensitiveParamFilter } = require('@amaabca/sensitive-param-filter')
const filter = new SensitiveParamFilter({
filterUnknown: false,
params: SPFDefaultParams.concat(['data', 'email']),
replacement: '***',
whitelist: ['authentic', 'encryption_standard']
})
-
过滤器未知 : 表示是否应当过滤或按原样返回“意外”对象(如函数等). 默认为
true -
段落 : 要过滤的字符串参数阵列 . 这些条目将被合并成一个用于敏感-param-filter的regex. 设置此选项以覆盖默认数组( N)
SPFDefaultParams) (中文(简体) ). -
替换 : 将过滤值替换为的对象 . 默认为
'FILTERED'。 。 。 . -
白名单 : 要排除过滤的字符串数组 . 例如,如果
pass_through包含在白名单中,键pass_through将不会过滤. 注意条目必须精确匹配密钥以防止过滤 - 即白名单secrets仍为原因secrets_store将被过滤.
默认值
见 默认。 。 。 . 请注意,所有这些值都可以通过选项被推翻.
被过滤的默认密钥有:
- 认证
- 无记名者
- 信贷
- 简历
- 简历
- 加密
- PAN 在线
- 通过
- 隐藏
- 符号
许可贡献( A)
sensitive-param-filter 使用麻省理工学院的执照.
见 许可证。 。 。 .
我们欢迎各方的贡献. 见 捐款。 。 。 .