springboot的技术精髓(青锋springboot开源脚骨-安全漏洞XXS介绍)

存储型XXS介绍

概念存储型XSS是指应用程序通过Web请求获取不可信赖的数据,并且在未检验数据是否存在XSS代码的情况下,将其存入数据库。当程序下一次从数据库中获取该数据时,致使页面再次执行XSS代码。存储型XSS可以持续攻击用户,在用户提交了包含XSS代码的数据存储到数据库后,每当用户在浏览网页查询对应数据库中的数据时,那些包含XSS代码的数据就会在服务器解析并加载,当浏览器读到XSS代码后,会当做正常的html和JS解析并执行,于是发生存储型XSS攻击。什么是XXS代码?加载完毕自动触发事件:<body onload="alert('xss')"></body>使html某元素撑满整个页面:<p onclick="alert('1')" style="postion:fixed;width:100%;heith:100%"> </p>增加属性触发事件(使用这个 页面一直弹弹窗,关闭不了): <input onfocus="alert('1')" autofocus/>在iframe标签中使用Data URI scheme直接嵌入文本:<iframe src="data:text/html,<script>alert('1')</script>"></iframe>常见案例1、通过执行代码查询到对应的数据,未做任何处理直接进行展示:<%=data%>此处的data可能包含XXS代码。2、在页面中直接通过el表达式:${data}、${data.name}都是存在安全漏掉的。你如":下面ISPt设的能根据一个已知用广难()从属 询出该用的经名,示SP面上.Statementstmt-conn.createStatementQ;ResultSetrsStmt.executeQueryselectmurshiStringaddress-null?if(rs!null)rsnexti;address-rsgetstringCaddress:%>家庭地址:<%-address%>如:d地esg值出用担的,入数用没有业行合到的做验,那么者可以上面的代摄业行型S

springboot的技术精髓(青锋springboot开源脚骨-安全漏洞XXS介绍)(1)

反射型XXS介绍

概念反射型XSS是指应用程序通过Web请求获取不可信赖的数据,并在未检验数据是否存在恶意代码的情况下,将其发送给用户。反射型XSS一般可以由攻击者构造带有恶意代码参数的URL来实现,在构造的URL地址被打开后,其中包含的恶意代码参数被浏览器解析和执行。这种攻击的特点是非持久化,必须用户点击包含恶意代码参数的链接时才会触发。常见案例下面JSP代码片段的功能是从HTTP请求中读取输入的用户名(username)并显示到页面。请求:http://www.xxxx.com/user?username=<body onload="alert('xss')"></body><%String name= request.getParameter("username"); %> 姓名: <%= name%> XXS漏洞修复建议修复建议为了避免XSS攻击,建议采用以下方式进行防御:1、对从数据库或其它后端数据存储获取不可信赖的数据进行合理验证(如年龄只能是数字),对特殊字符(如`<、>、'、"``<script>、javascript`等进行过滤。2、根据数据将要置于HTML上下文中的不同位置(HTML标签、HTML属性、JavaScript脚本、CSS、URL),对所有不可信数据进行恰当的输出编码。可采用OWASP ESAPI对数据输出HTML上下文中不同位置,编码方法如下。ESAPI.encoder().encodeForHTML(inputData); HTML编码器ESAPI.encoder().encodeForHTMLAttribute(inputData); HTML属性编码器ESAPI.encoder().encodeForJavaScript(inputData); JavaScript编码器ESAPI.encoder().encodeForCSS(inputData); CSS编码器ESAPI.encoder().encodeForURL(inputData); URL编码器3、设置HttpOnly属性,避免攻击者利用跨站脚本漏洞进行cookie劫持攻击。在Java EE中,给Cookie添加HttpOnly的代码如下:response.setHeader("Set-Cookie","cookiename=cookievalue; path=/; Domain=domainvaule; Max-age=seconds; HttpOnly"); 什么是HttpOnly?如果cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击,窃取cookie内容,这样就增加了cookie的安全性,即便是这样,也不要将重要信息存入cookie。什么是ESAPI ?ESAPI是一个免费、开源的Web应用程序安全控制组件,可以帮助编程人员开发低风险应用程序String safe = ESAPI.encoder().encodeForHTML( request.getParameter( "input" ) );<% String img_url = "\" /><script>alert('xss')</script><img src=\"";<img src="<%=ESAPI.encoder().encodeForHTMLAttribute( img_src ) %>" />// out<img src="" /><script>alert('xss')</script><img src="" />

青锋开源产品

功能非常的多,开源多套系统,多个版本的内容,需要源码的朋友码云搜索青锋。或者私信留【V】。期待与您的一起交流。

开源产品包括且不限于:springboot、springcloud、vue、react、layui等等

springboot的技术精髓(青锋springboot开源脚骨-安全漏洞XXS介绍)(2)

springboot的技术精髓(青锋springboot开源脚骨-安全漏洞XXS介绍)(3)

springboot的技术精髓(青锋springboot开源脚骨-安全漏洞XXS介绍)(4)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页