本文目录一览:
- 1、Struct2+Spring 架构JavaWeb项目,出现xss跨站脚本攻击漏洞解决方案??
- 2、SpringBoot 防止SQL注入、XSS攻击、CSRF/CROS恶意访问
- 3、请教一下,spring框架0day高危漏洞如何排查? 这个东西只存在于Java平台中吗
- 4、JDK9使用spring框架发现漏洞,官方对此有何回应?
- 5、spring MVC下如何能有效的防止XSS漏洞以及sql注入
- 6、Spring框架曝安全漏洞,你如何评价这个漏洞?
Struct2+Spring 架构JavaWeb项目,出现xss跨站脚本攻击漏洞解决方案??
没用到富文本的话可以用spring里的HtmlUtils.htmlEscape(string str)来对parameter转码。是用filter还是其他方式都可以
SpringBoot 防止SQL注入、XSS攻击、CSRF/CROS恶意访问
一、SQL 注入问题
SQL 注入即是指 web 应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在 web 应用程序中事先定义好的查询语句的结尾上添加额外的 SQL 语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。
简单来说,就是将大部分 SQL 语句当参数传入系统中,从而获取系统中的数据。下面简单举例说明
系统中有这样一条信息 SQL 语句执行,分页查询所有用户,每页查询 20 条,并且根据指定字段进行排序,也就是说排序字段也是参数传递过来的
SQL 注入问题分析:
这样很简单的一句话 SQL,就可以把系统搞炸掉,这种方式可以实现删库跑路
以上语句会把整个 test 数据库所有内容都删掉
尽量用预编译机制,少用字符串拼接的方式传参,它是 sql 注入问题的根源。
有些特殊字符,比如:%作为 like 语句中的参数时,要对其进行转义处理。
需要对所有的异常情况进行捕获,切记接口直接返回异常信息,因为有些异常信息中包含了 sql 信息,包括:库名,表名,字段名等。攻击者拿着这些信息,就能通过 sql 注入随心所欲地攻击你的数据库了。目前比较主流的做法是,有个专门的网关服务,它统一暴露对外接口。用户请求接口时先经过它,再由它将请求转发给业务服务。这样做的好处是:能统一封装返回数据的返回体,并且如果出现异常,能返回统一的异常信息,隐藏敏感信息。此外还能做限流和权限控制。
使用 sqlMap 等待代码检测工具,它能检测 sql 注入漏洞。
需要对数据库 sql 的执行情况进行监控,有异常情况,及时邮件或短信提醒。
对生产环境的数据库建立单独的账号,只分配 DML 相关权限,且不能访问系统表。切勿在程序中直接使用管理员账号。
建立代码 review 机制,能找出部分隐藏的问题,提升代码质量。
对于不能使用预编译传参时,要么开启 druid 的 filter 防火墙,要么自己写代码逻辑过滤掉所有可能的注入关键字。
XSS 攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是 JavaScript,但实际上也可以包括 Java、 VBScript、ActiveX、 Flash 或者甚至是普通的 HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和 cookie 等各种内容。
通常情况下,被用来盗用 Cookie、破坏页面结构、重定向到其他网站等
对用户输入的表单信息进行检测过滤
CSRF - Cross-Site Request Forgery - 跨站请求伪造:
攻击可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点,从而在未授权的情况下执行在权限保护之下的操作,CORS - Cross Origin Resourse-Sharing - 跨站资源共享,恶意访问内网敏感资源。
有效的解决办法是通过多种条件屏蔽掉非法的请求,例如 HTTP 头、参数等:
防止大规模的恶意请求,niginx 反向代理可以配置请求频率,对 ip 做限制。nginx 可以很方便地做访问控制,特别是一些偶发性的大量恶意请求,需要屏蔽处理。
屏蔽 ip 地址
屏蔽 user-agent
屏蔽代理 ip
有两种情形会需要屏蔽代理 ip:一是代理 ip 访问,二是负载均衡(real-ip 请求负载均衡服务器,再代理给后端 server)
创建 XssAndSqlHttpServletRequestWrapper 包装器,这是实现 XSS 过滤的关键,在其内重写了 getParameter,getParameterValues,getHeader 等方法,对 http 请求内的参数进行了过滤
请教一下,spring框架0day高危漏洞如何排查? 这个东西只存在于Java平台中吗
1、排查:为了防范用户上传恶意的可执行文件和脚本,以及将文件上传服务器当做免费的文件存储服务器使用,需要对上传的文件类型进行白名单(非黑名单,这点非常重要)校验,并且限制上传文件的大小,上传的文件,需要进行重新命名,使攻击者无法猜测到上传文件的访问路径。
2、是的。java狭义地来说,可以认为是一门编程语言,而spring是用java语言实现的一套基础开发框架。所以可以认为spring属于java的范畴。
JDK9使用spring框架发现漏洞,官方对此有何回应?
官方目前并没有对此次回应,应该是还没找好修复的方法,不然早就回复了。不过官方目前回不回复也没关系,因为大部分公司使用的JDK版本还是处于JDK8。所以这个漏洞对于大部分厂商来说并不是什么问题,官方可以有足够的时间去修复。
其实这种问题官方第一时间回复也没什么用,因为这不是道歉就可以解决的,而且在IT圈,也没有说出现了这种Bug就要出来道歉的,因为出现这种Bug是常理之中。而且这次出现Bug的还是JDK9版本,这个版本虽然也不算是新版本,但大多数公司的程度架构都没有使用JDK9版本,因为目前最稳定的JDK版本是JDK8,对于公司来说,稳定大于一切。所以官方可能也是因为这个原因,没有第一时间出来回复,但都不用害怕,官方肯定会对此漏洞进行修复的,而且修复这种漏洞的时间也不需要多久。
官方虽然没有对此有回应,但也不需要官方回应才能解决问题。这次的Bug又是注入问题。虽然大部分公司的架构没有采用JDK9版本,但有部分公司可能采用了JDK9。出现这种问题,也不一定要等着官方的回应和补丁,可以自己先自行处理,因为这个漏洞虽然说是高危,但和SQL注入差不多。都是可以自行处理的。像SQL,使用预处理方式就完美的解决了这个问题。当然, 如果有官方的修复补丁是更好的,但短时间内是不可能的。
官方目前对此还没有回应,不过也正常,因为我们的时区不相同,别人那边可能还在休息。当然,官方的回应大概也是叫你等待补丁,或者给你推荐另外一个解决方案。
spring MVC下如何能有效的防止XSS漏洞以及sql注入
在数据进入数据库之前对非法字符进行转义,在更新和显示的时候将非法字符还原
在显示的时候对非法字符进行转义
如果项目还处在起步阶段,建议使用第二种,直接使用jstl的标签即可解决非法字符的问题。当然,对于Javascript还需要自己处理一下,写一个方法,在解析从服务器端获取的数据时执行以下escapeHTML()即可。
附:Javascript方法:
String.prototype.escapeHTML = function () {
return this.replace(//g, ‘’).replace(//g, ‘’).replace(/
Spring框架曝安全漏洞,你如何评价这个漏洞?
Spring框架曝安全漏洞,你如何评价这个漏洞?下面就我们来针对这个问题进行一番探讨,希望这些内容能够帮到有需要的朋友们。
继Log4j2以后,听到Java再度遭受漏洞进攻,这一次,好像状况也更为严重,由于遭受危害的是Java服务平台的开源系统全栈应用软件框架和控制反转器皿完成——Spring家族,并且网传漏洞还不仅一个。一直以来,Spring是程序编写开发设计的首选技术性之一,先前一位名叫BogdanN.的全栈开发者乃至点评道:“学习培训Java、学习Spring框架,你永远都不容易下岗。”
显而易见,假如Spring城门失火,Java必然殃及。但是,SpringRCE漏洞在互联网上炒了二天,尽管有许多安全圈工作人员陆续发朋友圈,但大量的或是表明了仅仅听到,这也不免令人怀疑,是真有漏洞,或是虚惊一场?3月26日,据网络信息安全网址CyberKendra报导,SpringCloudFunction官方网功能测试曝出了SpringCloudFunctionSPEL(SpringExpressionLanguage)关系式引入漏洞,网络黑客可使用该漏洞引入SPEL表达式来开启远程连接命令实行。
最初,科学研究工作人员在剖析SpringCloud函数公式的main支系时,发觉有开发者向在其中加上了SimpleEvaluationContext类。还采用了isViaHeadervariable做为标示,在分析spring.cloud.function.routing-expression以前分辨的值源自HTTPheader。现阶段,SpringCloudFunction被很多互联网巨头运用于设备中,包含AWSLambda、Azure、GoogleCloudFunctions、ApacheOpenWhisk及其很多Serverless服务提供商。
依据官方网文本文档,SpringCloudFunction是根据SpringBoot的函数计算框架,它可以:根据函数公式推动业务逻辑的完成。将业务逻辑的开发设计生命期与一切特殊的运作时总体目标分离出来,便于应用同样的编码可以做为Web端点、流处理器数量或每日任务运作。适用跨Serverless服务提供商的统一程序编写实体模型,具有单独运作(当地或在PaaS中)的工作能力。在Serverless上给予程序流程上开启SpringBoot作用(全自动配备、依赖注入、指标值)。
简单点来说,SpringCloudFunction根据抽象化传送关键点和基础设施建设,为开发者保存了解的开发环境和开发流程,让开发者致力于完成业务逻辑,进而提升开发设计高效率。现阶段,SpringCloudFunctionSPEL漏洞已被分类为比较严重级别,CVSS(通用性安全性漏洞评分标准)得分成9.0(100分10)。
对比前面一种,3月29日夜间,有许多网民曝出的SpringRCE漏洞,让开发者圈中人人自危。但是有一些与众不同的是,这一漏洞现阶段并没像Log4j2事情那般造成的圈里众多公司大型厂的紧急行动,都不像SpringCloudFunctionSPEL漏洞那般有官方网表明,乃至连海外公布漏洞的源头也是来源于QQ和中国一部分网络信息安全网址。