第三十三章、如何写出安全的java代码

从java语言的角度,需要重视的是程序级别的攻击,也就是利用Java、jvm或应用程序的瑕疵,进行低成本的Dos攻击,这也是想要写出安全的java代码所必须考虑的,例如:

    1、如果使用的是早期的JDK和Applet等技术,攻击者构建合法但恶劣的程序就相对容易,例如,将其线程优先级设置为最高,做一些看起来无害但空耗资源的事情;

    2、利用java构建类似上传文件或者其他接受输入的服务,需要对消耗系统内存或存储的上线有所控制,因为我们不能将系统安全依赖于用户的合理使用。其中特别注意的是涉及解压缩功能时,就需要防范zip bomb等特定攻击;

    3、另外,java程序中需要明确释放的资源又很多种,比如文件描述符,数据库连接,甚至时再入锁,任何情况下都应该保证资源释放成功,否则即使平时能够正常运行,也可能被攻击者利用而耗尽某类资源,这也算是可能的Dos攻击来源。


各阶段如何排查避免安全隐患?

1、开发和测试阶段

    在实际开发中,各种功能点五花八门,未必能考虑的全面,尽量使用广泛验证过的工具、类库,不管时来自JDK自身,还是Apache等第三方组织,都在社区的反馈下持续地完善代码安全;

    开发过程中应用代码规约标准,是避免安全问题的有效手段;

    在早期设计阶段,就由安全专家组对新特性进行风险评估;

    开发过程中,尤其是code review阶段,应用OpenJDK自身定制的代码规范;

    利用多种静态分析工具如Findbugs、Parfait等,帮助早期发现潜在安全风险,并对相应问题采取零容忍态度,强制要求解决;

    


部署阶段

    JDK自身也是个软件,难免会存在实现瑕疵,我们看到JDK更新的安全漏洞补丁,其实就是在修补这些漏洞,大多数存在序列化相关漏洞问题都是因为使用的JDK版本较低,可以通过部署解决问题;

    如果是安全敏感型产品,建议关注JDK在加解密方面的路线图,同样的标准也应用于其他语言和平台,很多早期认为非常安全的算法,已经被攻破,及时地升级基础软件是安全的必要条件。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,906评论 25 708
  • 突然想到一个问题?十年后的我会过什么样的生活? 时间就是快,不知不觉在服装行业干了十年,没有存款,只是养大了两个孩...
    广西韵格阅读 203评论 0 1
  • 冬天刚来不太久,女孩和很呱呱坠地的小婴儿如滑过天空的流星一般突然降生了。 还不会走路的时候,女孩看到眼...
    虎皮花卷阅读 206评论 0 0
  • 今天看完这部电影,日本2008年拍的,看完之后觉得无话可说却又觉得百感交集却无法尽数表达出来。 两个天才之间的无息...
    港岛一阅读 338评论 0 0

友情链接更多精彩内容