聪明的程序员会绕开这些雷(转)
关于停止使用Apache Struts2开发框架的通知,之后有人求推荐其他框架,其实在2016年就有园友推荐了替换的方式:
转发文章如下:
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 2避雷宝典。
感谢 zhhy88 图谱绘制,47 个 Struts 资源
或者直接访问 Java SE 官网知识库