聪明的程序员会绕开这些雷(Struts 2安全事件)
2016-12-12 17:48
387 查看
编者说
12月10日,京东数据事件——
“一个京东的12G 数据包近期在黑市上流通,其中包括用户名、密码、邮箱、QQ号、电话号码、身份证等多个维度,数据多达数千万条。随后也有京东用户反映,自己的京东白条近期被盗刷。”
12月11日,京东回应还有“极个别”系统使用Struts2框架,但已经过妥善升级,“暂不会出现安全问题”。
有人说
然并卵
许多程序员面临的问题是,公司要求快速迭代,产品明天要上线,你今天还要写框架,费时费力,索性就直接借助开源框架。
那些雷
Struts 2官方起初曾就框架可能存在的安全漏洞进行了声明。开发人员在运用该框架编写代码时,需要进行必要的安全处理。
![](https://img-blog.csdn.net/20161212174056999?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmFpeXV6aG9uZzIwMTI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
当出现漏洞是,Struts会提示用户升级,但若暂时无法升级,系统会发布最高安全等级为“重要”或是“极其重要”不等的提示,并会附上相应的解决措施。
![](https://img-blog.csdn.net/20161212174129391?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmFpeXV6aG9uZzIwMTI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
所有Struts2开发人员必读,最高安全等级为“极为重要”的安全提示。
这就像是已经告诉你,冬天很容易感冒,要多穿点衣服。但若是你还是少穿衣服,没有应用这个安全处理措施,那感冒就怪不了别人了。
Struts2是什么?
Struts是基于Java语言的一款开源框架,类似基于PHP语言的Yii和Laravel。
Struts是Apache基金会的一个开源项目,广泛应用于大型互联网企业、政府、金融机构等网站建设,并作为网站开发的底层模板使用。
Struts 2是Struts的下一代产品,是在Struts 和WebWork的技术基础上进行合并,形成的全新框架。
2013年7月17日,Struts2曾出现高危漏洞。包括国内很多知名网站在内的大量网站,受到此漏洞不同程度的影响。攻击者可以利用该漏洞执行恶意java代码,最终导致网站数据被窃取、网页被篡改等严重后果,使网站及网民安全受到了极大的威胁。
一些观点
框架就像是一个柜子,轮廓已经在那里了,怎么隔层,放哪些东西都是由你自己决定。隔层、放置的东西都是小问题,但是若框架出现问题,那影响就是根本性。
Struts在早期是Java后端开发很成熟的解决方案,被大量采用,后来陆续爆发了不少问题和漏洞,但是企业要重新更换整体框架,不管是在技术层面,还是运营层面,都有不少阻力。
Java语言的开发效率低于PHP,但是运行速度优于后者,相对来说更适合项目较大的系统。国内的电商平台一般都使用 Java语言, 例如淘宝、京东。
在此,推荐Struts避雷宝典
感谢 @zhhy88 图谱绘制,47个Struts资源
![](https://img-blog.csdn.net/20161212174612788?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmFpeXV6aG9uZzIwMTI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
或者 直接访问 Java SE 官网知识库
12月10日,京东数据事件——
“一个京东的12G 数据包近期在黑市上流通,其中包括用户名、密码、邮箱、QQ号、电话号码、身份证等多个维度,数据多达数千万条。随后也有京东用户反映,自己的京东白条近期被盗刷。”
12月11日,京东回应还有“极个别”系统使用Struts2框架,但已经过妥善升级,“暂不会出现安全问题”。
有人说
前人在利用基础语言进行操作时发现了共性,便将基础性的内容提取,于是就有了框架。而开源框架指的是,不仅给你框架,还将这个框架的搭建方法,以及源码一并给你。任何人都可以根据需要更改框架,甚至还可以在此过程中发现框架的不足与漏洞。
然并卵
许多程序员面临的问题是,公司要求快速迭代,产品明天要上线,你今天还要写框架,费时费力,索性就直接借助开源框架。
那些雷
Struts 2官方起初曾就框架可能存在的安全漏洞进行了声明。开发人员在运用该框架编写代码时,需要进行必要的安全处理。
当出现漏洞是,Struts会提示用户升级,但若暂时无法升级,系统会发布最高安全等级为“重要”或是“极其重要”不等的提示,并会附上相应的解决措施。
所有Struts2开发人员必读,最高安全等级为“极为重要”的安全提示。
这就像是已经告诉你,冬天很容易感冒,要多穿点衣服。但若是你还是少穿衣服,没有应用这个安全处理措施,那感冒就怪不了别人了。
Struts2是什么?
Struts是基于Java语言的一款开源框架,类似基于PHP语言的Yii和Laravel。
Struts是Apache基金会的一个开源项目,广泛应用于大型互联网企业、政府、金融机构等网站建设,并作为网站开发的底层模板使用。
Struts 2是Struts的下一代产品,是在Struts 和WebWork的技术基础上进行合并,形成的全新框架。
2013年7月17日,Struts2曾出现高危漏洞。包括国内很多知名网站在内的大量网站,受到此漏洞不同程度的影响。攻击者可以利用该漏洞执行恶意java代码,最终导致网站数据被窃取、网页被篡改等严重后果,使网站及网民安全受到了极大的威胁。
一些观点
框架就像是一个柜子,轮廓已经在那里了,怎么隔层,放哪些东西都是由你自己决定。隔层、放置的东西都是小问题,但是若框架出现问题,那影响就是根本性。
Struts在早期是Java后端开发很成熟的解决方案,被大量采用,后来陆续爆发了不少问题和漏洞,但是企业要重新更换整体框架,不管是在技术层面,还是运营层面,都有不少阻力。
Java语言的开发效率低于PHP,但是运行速度优于后者,相对来说更适合项目较大的系统。国内的电商平台一般都使用 Java语言, 例如淘宝、京东。
在此,推荐Struts避雷宝典
感谢 @zhhy88 图谱绘制,47个Struts资源
或者 直接访问 Java SE 官网知识库
相关文章推荐
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEvent
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEvent
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
- 厉害了word黑客,这些 4000 被誉为2016年十大网络安全事件
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientSc
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterF
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEvent
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterF
- 为什么不用C++写游戏(聪明的程序员不用C++折磨自己)(这些工作,QT都替开发者解决了,C++没有根类导致太多的问题,也没有字符串类)
- 计算机安全事件处理指南(四):安全事件后活动[译文?]
- Visual Basic .NET 和 Visual C# .NET 程序员需要解决的安全问题
- 域名劫持事件接连发生 关注DNS安全刻不容缓
- 计算机安全事件处理指南(二):检测和分析[译文?]
- 2006年十大安全事件
- 评 真正的程序员,不会在意自己用的是什么语言或者什么平台,因为这些是由成本和客户决定的。”
- 计算机安全事件处理指南(三):限制、消除和恢复[译文?]