Java开发初学者的五条安全小贴士

前言

得益于Java的完备生态,Java一直是非常热门的编程语言。但对于刚刚接触Java的开发者来说,很少会去关注安全相关的问题,没有养成良好的开发习惯,在开发过程中容易带来安全隐患。

Java开发初学者的五条安全小贴士

我们在本文中总结了五条简单有效的小建议。

一、及时更新依赖组件版本

Java开发中,开发者经常会用到各类开源组件来实现自己的功能点,但是许多开发者不常关注安全资讯,不了解开源组件的哪个版本存在什么样的漏洞,从而可能会引入安全漏洞。

所以在选择开源组件版本的时候,应优先选择最新发布的组件,因为最新版本的组件通常都会解决历史安全问题,因此使用最新版本组件可以将安全风险降到最低。

二、添加安全相关的HTTP请求头

现代浏览器已经支持很多和安全相关的请求头(header),当添加这些HTTP安全请求头时,浏览器在处理网站内容时会应用相应的安全机制,能够缓解XSS,代码注入,点击劫持等攻击方式。例如,使用Strict-Transport-Security(严格安全传输),就可以强制要求浏览器仅通过HTTPS进行通信。

三、异常信息不输出给用户

异常对象引起的错误返回可能包含敏感信息,在系统抛出异常后,异常信息如果输出给用户,可能会被攻击者利用。例如控制输入参数来暴露应用程序的内部结构和机制,异常消息文本和异常类型可能会泄露信息,以 FileNotFoundException 为例。这些消息包含有关文件系统布局的信息,异常类型显示丢失的请求文件。

为了保护 Java 代码应用程序,开发者们应该过滤异常消息和异常类型,避免直接暴露给用户。

四、避免记录敏感信息

开发者们在开发过程中,会接收到来自用户的许多敏感信息,例如信用卡和银行卡号码、身份证、手机号和密码等信息,这些对犯罪分子来说是高度敏感和有价值的,数据盗窃对个人和组织造成巨大伤害。

开发者们应避免将此类信息明文存储在日志文件中。 如果必须用到身份证等任何敏感信息,可以考虑仅记录身份证号的特征信息,例如最后四位数字或者hash,并确保使用经过验证的脱敏工具库对其进行加密。

五、保持代码的简洁

相对而言,越复杂的代码越容易出现问题,所以开发者应该尽量保持代码的简洁。

以下是一些保持代码简洁的实践:

  • 在不减少功能的情况下使其组织结构尽可能简单。
  • 在代码中避免公开过多的测试用户信息,有助于保持安全性和可维护性。
  • 充分利用 Java 的访问修饰符,尽可能为类、方法及其属性声明最严格的访问级别,将可以设置为私有的内容都设置为私有。
  • 定义尽可能小的 API 和接口对象,解耦组件并使它们在尽可能小的范围内交互,这样即便应用程序的某一个组件被攻击,但是其他组件还是安全的。

总结

安全问题绝大多数都是因为开发人员的安全意识薄弱所导致的,开发者们应该在Java开发的时候,提高代码安全意识和遵守代码安全规范,这会有效提高系统的安全性与流畅性。

参考链接

https://coralogix.com/blog/best-practices-for-writing-secure-java-code/

https://www.synopsys.com/blogs/software-security/spring-security-best-practices/

(0)
上一篇 2023年8月9日 下午8:33
下一篇 2023年8月9日 下午8:55

相关推荐

  • 软件供应链风险管理:2023年指南

    软件供应链风险管理(SSCRM)是指识别、评估和减轻与集成到软件产品中的第三方软件组件和服务相关的风险的过程。SSCRM包括了解这些组件可能产生的潜在漏洞,并采取措施减少对软件系统或最终用户的利用或损害的风险。 为什么软件供应链攻击越来越普遍 由于几个因素,软件供应链攻击变得越来越普遍: 供应链安全和DevSecOps DevSecOps是一种将安全性整合到…

    2023年8月31日
    0
  • 如何通过SBOM(软件物料清单)实现安全治理

    前言 SBOM(软件物料清单)是近年来在软件供应链领域频繁提到的概念,Linux基金会在2021年Q3调研了全球412 家机构发现已经有82%的人熟悉SBOM、78%的组织预计在今年使用SBOM。本文将介绍SBOM基本概念、实现方式、应用场景,帮助读者通过SBOM更高效地实现安全治理目标。 什么是SBOM 根据NTIA(美国国家电信和信息化管理局)的定义,S…

    2023年8月9日
    0
  • 近期大型攻防演练观感及未来攻防趋势判断

    先说结论 今年大型攻防演练的观感: 1. 大量的国产商业软件供应链厂商的大量商业软件0day被用来攻击(以安全产品、OA、cms、办公软件为主) 2. 社工+钓鱼又玩出了新花样(红队这帮人估计去电诈团队培训回来的?) 3. 开源软件的Nday/0day漏洞及投毒仍然很实用(更多是Nday漏洞有更成熟的利用工具用来打点和内网渗透)未来攻防趋势判断: 1. 未来…

    2023年8月21日
    0
  • 使用 SBOM 查找 Amazon EKS 集群上运行的易受攻击的容器映像

    前言 当你在当地的杂货店购买包装好的食品时,你可能会检查上面列出的成分列表,以了解其中含有什么,确保你不会不经意地摄入你不希望吃的成分或已知对健康有不良影响的成分。但当你购买或使用软件产品时,你是否也有这样的思考方式?你是否清楚地了解构成该软件的各个组件,并知道其中是否有任何已知的漏洞?如今的典型软件应用都是使用许多开源软件库和可重复使用的第三方代码构建的。…

    2023年8月11日
    0
  • 软件供应链攻击的演变史

    作者:Vishal Garg 软件供应链攻击在过去几年中迅速增加,包括SolarWinds和Log4Shell在内的一些备受瞩目的事件提高了人们对它们对网络安全构成的潜在风险的认识。 这些攻击引起了公共和私营部门的广泛关注,因此,美国总统于 2021 年 5 月 12 日发布了一项关于改善国家网络安全的行政命令,其中有一个部分专门致力于改善软件供应链安全。 …

    2023年9月7日
    0