当前位置: 首页 > 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.jsqmd.com/news/577637/

相关文章:

  • Python自然语言处理实战:从基础到应用
  • CUDA环境混乱导致bitsandbytes安装失败?3步彻底清理残留驱动(附A100实测)
  • 新手福音:通过快马平台ai生成可运行的spring项目快速入门
  • GLM-4-9B-Chat-1M企业级部署:vLLM算力适配方案与GPU利用率提升50%
  • 二极管基础全解(从原理、计算到选型应用)
  • 建筑工程环境检测迈入AI报告审核时代:IACheck实现全要素智能校验与质量升级
  • Android Navigation组件实战:从零构建高效Fragment导航系统
  • 2026年 防微振系统/平台/基台/装置/设备厂家推荐排行榜:精密主动与被动隔振技术,洁净室防微振解决方案深度解析 - 品牌企业推荐师(官方)
  • LightOnOCR-2-1B实战体验:11种语言混排图片识别效果实测
  • 法律AI助手调参实战:为什么我把temperature设为0.3,而不是0.7或0.1?
  • 利用快马AI快速生成xshell8风格终端管理界面原型
  • 全志T527以太网吞吐率上不去?别只调delay,这份性能排查指南帮你定位真凶
  • php方案 碎片化诊断
  • 数据工程师必备:DataX全量迁移与Flink CDC增量同步的黄金组合方案
  • 文脉定序系统一键部署教程:Ubuntu环境快速搭建指南
  • PyG安装踩坑实录:从CUDA版本冲突到ModuleNotFoundError,我的PyTorch Geometric环境搭建血泪史
  • 3个高效步骤:使用开源工具tchMaterial-parser下载国家中小学智慧教育平台电子课本
  • 2026年4月怎么搭建OpenClaw?云端部署OpenClaw、配置百炼APIKey、集成Skill喂饭级流程
  • 别再死磕逐位计算了!用C语言手撸一个CRC32查表函数(附完整代码和表格生成)
  • AI驱动的视频硬字幕精准修复技术:从痛点解决到行业革新
  • 2026年公交站台厂家推荐排行榜:智慧公交站台、综合公交站台、城市快速路公交站台、枢纽型公交站台、TOD配套公交站台、智能系统与升级改造方案深度解析 - 品牌企业推荐师(官方)
  • 别再只会用pywt.cwt了!手把手教你从零实现Python连续小波变换(附完整代码与调参避坑指南)
  • Oracle EBS FA 比例分摊惯例设置实例
  • 用JK触发器搭个10进制计数器:从真值表到自启动检查,手把手带你走一遍
  • 2026双层活动板房优质品牌推荐指南 - 优质品牌商家
  • Windows 系统下使用 ADB 的是详细的操作指南
  • 从无人机到平衡车:MPU6050 DMP数据怎么用?一个实际项目带你玩转姿态控制
  • 【BLE系列-第四篇】数据链路层(LL)实战:广播与连接建立的关键参数调优指南
  • 【必收藏】金三银四AI求职指南:小白/程序员入局大模型,避坑+拿高薪全攻略
  • cpp类和对象详细讲解(下)