smarty-xssrepair

XSS repair for the smarty template.

npm install smarty-xssrepair
2 downloads in the last week
8 downloads in the last month

XSS repair for the smarty template.

对Smarty模板进行XSS校验修复

安装

npm install smarty-xssrepair

原理

通过配置对应类型(js、event、path、xml、data)的转义插件名称,对Smarty模板进行XSS检验修复。

使用方法

载入模块

var xss = require('smarty-xssrepair');

设置配置参数

/**
 * xss.parse()方法参数为对象,通过key->value的方式进行配置设置
 */
var option = {}
    escapeMap = {
        'js' : 'f_escape_js',
        'html' : 'f_escape_xml',
        'data' : 'f_escape_data',
        'path' : 'f_escape_path',
        'event' : 'f_escape_event',
        'no_escape' : 'escape:none'
    };
//需要进行检测修复的内容,必须参数
option['fileContent'] = '<div class="{#$spUserInfo.userName|f_escape_xml#}">{#$spUserInfo.city|f_escape_xml#}</div>';
//不同类型对应的转义列表,默认为空
option['_check_pattern'] = escapeMap;
//是否进行修复,默认为true
option['isXssAutoFixed'] = true;
//Smarty模板变量左定界符,默认为:<&
option['leftDelimiter'] = '{#';
//Smarty模板变量右定界符,默认为:&>
option['rightDelimiter'] = '#}';
//XSS安全变量,不需要进行转义
option['xssSafeVars'] = ['fis_safe','fis_xss'];
//返回的结果,数据结构为
//error为校验信息,content为修复后内容,realcontent为原内容
//{
//  'error':[],
//  'content':'',
//  'realContent':''
//}
var result = xss.parse(option);
console.log(result['content']);

测试

系统测试

在源码目录执行命令:npm test

npm loves you