当前位置: 首页 > news >正文

XSS攻击通用工具类

预防XSS攻击通用工具类,CV即可。

import java.util.regex.Matcher; import java.util.regex.Pattern; public class XssUtils { private static Pattern[] patterns = new Pattern[]{ // Script fragments Pattern.compile("<script>(.*?)</script>", Pattern.CASE_INSENSITIVE), // src='...' Pattern.compile("src[\r\n]*=[\r\n]*\\\'(.*?)\\\'", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL), Pattern.compile("src[\r\n]*=[\r\n]*\\\"(.*?)\\\"", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL), // lonely script tags Pattern.compile("</script>", Pattern.CASE_INSENSITIVE), Pattern.compile("<script(.*?)>", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL), // eval(...) Pattern.compile("eval\\((.*?)\\)", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL), // expression(...) Pattern.compile("expression\\((.*?)\\)", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL), // javascript:... Pattern.compile("javascript:", Pattern.CASE_INSENSITIVE), // vbscript:... Pattern.compile("vbscript:", Pattern.CASE_INSENSITIVE), // onload(...)=... Pattern.compile("onload(.*?)=", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL), // alert Pattern.compile("alert(.*?)", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL), Pattern.compile("<", Pattern.MULTILINE | Pattern.DOTALL), Pattern.compile(">", Pattern.MULTILINE | Pattern.DOTALL), //Checks any html tags i.e. <script, <embed, <object etc. Pattern.compile("(<(script|iframe|embed|frame|frameset|object|img|applet|body|html|style|layer|link|ilayer|meta|bgsound))"), Pattern.compile("prompt") }; /** * xss替换函数 * * @param value 需要替换的字符 * @return 替换后的字符 */ public static String stripXSS(String value) { if (value != null) { // Avoid null characters value = value.replaceAll("\0", ""); // Remove all sections that match a pattern for (Pattern scriptPattern : patterns) { value = scriptPattern.matcher(value).replaceAll(""); } } return value; } /** * xss校验函数 * * @param value 需要校验的字符 * @return 返回值:true 表示存在xss漏洞,false:不存在 */ public static boolean checkIsXSS(String value) { boolean isXss = false; if (value != null) { for (Pattern scriptPattern : patterns) { Matcher matcher = scriptPattern.matcher(value); if (matcher.find()) { isXss = true; break; } } } return isXss; } }
http://www.cnnetsun.cn/news/1656201.html

相关文章:

  • Windows下ChromeDriver与Selenium环境配置全攻略(解决闪退问题)
  • 5B00,5B01,5B02,1700,1701,1702,1704,P07,E08,废墨收集器将满,TS3480 ,TS3380,G2800 ,G3800,G2810,G3810清零修复软件
  • 【图像压缩】遗传算法图像压缩参数优化(含PSNR 压缩比)【含Matlab源码 15271期】
  • 无水印视频下载:解决快手内容保存难题的高效技术方案
  • CUDA环境混乱导致bitsandbytes安装失败?3步彻底清理残留驱动(附A100实测)
  • 别再只会用pywt.cwt了!手把手教你从零实现Python连续小波变换(附完整代码与调参避坑指南)
  • 为什么Llama 2选择RMSNorm?深入解析大语言模型中的归一化技术选型
  • 临床科研场景下医疗数据安全开放共享平台设计
  • 给云架构师:拆解华为云Stack LLD设计背后的‘为什么’——不止于配置清单
  • 超越图块匹配:桥接未对齐的航空与卫星视图以实现纯视觉无人机导航
  • 甲骨文大规模裁员,全力押注AI数据中心
  • 终极指南:5分钟快速部署Slurm-web,打造现代化HPC集群管理平台
  • 从内置函数到自定义算法:用 AMDP 驱动的 CDS Scalar Function 打开 ABAP CDS 的新扩展面
  • B站评论区成分检测器:3分钟快速上手,让评论区互动更高效
  • 小端AI办公自动化:6个场景一键搞定!
  • 合同纠纷频发?别再靠“微信截图+口头汇报”救火!
  • Comsol分析:线性导轨中滚动接触疲劳与超载极限的关联
  • Linux进程管理:从基础概念到实践应用
  • 小店会员管理微信小程序系统视频教程(适合理发店,宠物店等各种小店),使用 云函数 + 云数据库,商业级项目实战,Cursor + Calude AI编程 2小时轻松搞定
  • 基于HYDRUS1D的环评文件土壤污染物垂直入渗模拟预测
  • 【2025最新】基于SpringBoot+Vue的母婴商城系统管理系统源码+MyBatis+MySQL
  • 运维系列【仅供参考】:【Docker】容器生命周期管理:从优雅停止到高效清理的实战技巧
  • 异地(异机)备份的实现
  • PyCharm配置PySide6工具链避坑指南:解决虚拟环境路径、命令报错那些事儿
  • FPGA实战:S29GL064N Flash芯片在DE2-115开发板上的高效读写控制
  • 利用快马平台AI能力,五分钟快速原型一个AutoClaw式简易爬虫
  • 115. OOM(内存不足),高内存消耗,基本故障排除步骤
  • 无组织废气治理进入AI报告审核阶段:IACheck助力质控水平全面提升
  • 3大核心功能突破JSON可视化难题:vue-json-pretty革新前端数据展示体验
  • 跨平台性能监控实战:从本地到服务器的全面指南