refactor(utils): 修复密码哈希比较逻辑错误 feat(user): 新增按状态筛选优惠券接口 docs: 添加虚拟发货与任务中心相关文档 fix(wechat): 修正Code2Session上下文传递问题 test: 补充订单折扣与积分转换测试用例 build: 更新配置文件与构建脚本 style: 清理多余的空行与注释
28 lines
636 B
Go
28 lines
636 B
Go
package activity
|
|
|
|
import (
|
|
"regexp"
|
|
"strings"
|
|
)
|
|
|
|
var (
|
|
reScript = regexp.MustCompile(`(?is)<\s*script[^>]*>.*?<\s*/\s*script\s*>`)
|
|
reOnEvent = regexp.MustCompile(`(?i)\s+on[a-z]+\s*=\s*"[^"]*"`)
|
|
reJsProto = regexp.MustCompile(`(?i)javascript:`)
|
|
)
|
|
|
|
func sanitizeHTML(s string) string {
|
|
if s == "" {
|
|
return ""
|
|
}
|
|
// 移除 <script> 标签及其内容
|
|
s = reScript.ReplaceAllString(s, "")
|
|
// 移除内联事件处理属性,如 onclick="..."
|
|
s = reOnEvent.ReplaceAllString(s, "")
|
|
// 移除 javascript: 协议注入
|
|
s = reJsProto.ReplaceAllString(s, "")
|
|
// 规范换行
|
|
s = strings.ReplaceAll(s, "\r\n", "\n")
|
|
return s
|
|
}
|