《Java安全编码标准》一1.4 效能泄露

简介: 本节书摘来自华章出版社《Java安全编码标准》一书中的第1章,第1.4节,作者 (美)Fred Long,Dhruv Mohindra,Robert C. Seacord,Dean F. Sutherland,David Svoboda,更多章节内容可以访问云栖社区“华章计算机”公众号查看

1.4 效能泄露

效能(capability)指的是在授权中可以进行沟通而不会被忘记的标识。效能这个词是由Dennis和Van Horn[Dennis 1966]引入的。它指向的是一个数值,这个数值指向的对象拥有一系列的对象访问权限。在一个基于效能的操作系统中的用户程序,必须使用效能来访问对象。
每一个Java对象都有不会被遗忘的标识。因为Java的==操作符会对引用等进行测试,它会被用来测试这个标识。因为有这个不会被遗忘的标识,所以允许使用一个对象引用作为标记,从而作为某种形式的动作需要的授权的一个不会被遗忘的证据[Mettler 2010a]。
授权会包含在对象引用中,这些对象引用被作为效能来使用。授权指那些运行代码带来的任何效果,而这些运行代码也许会带来其他的副作用。授权不仅包括那些对于外部资源例如文件或者网络套接字的操作,而且包含了那些在程序不同部分进行共享的可变数据结构的操作[Mettler 2010b]。
对于那些方法会执行敏感操作的对象的引用而言,它们会允许持有者执行这些操作的效能(或者要求一个对象代表这些持有者执行这些操作)。所以,这样的引用自身必须要被视为敏感数据,并且不能泄露给非受信代码。
一个很有可能让人感到惊讶的泄露效能和数据的源头是内隐类,这些类可以访问它们包含的类的所有字段。Java字节码缺少内置的对内隐类的支持,因此,内隐类必须编译成带有样式名称的普通类,如OuterClass$InnerClasss。因为内隐类必须能访问它们的包含类的私有字段,所以对这些字段的访问控制,就被转换到对字节码中的包的访问来进行。因而,手写的字节码可以访问这些名义上的私有字段(请以“Java字节码工程的安全方面”[Schonefeld2002]作为例子进行参考)。
以下是考虑效能的规则:
image
image

相关文章
Java智慧工地(源码):数字化管理提升施工安全与质量
随着科技的发展,智慧工地已成为建筑行业转型升级的重要手段。依托智能感知设备和云物互联技术,智慧工地为工程管理带来了革命性的变革,实现了项目管理的简单化、远程化和智能化。
55 5
Java 异常处理:筑牢程序稳定性的 “安全网”
本文深入探讨Java异常处理,涵盖异常的基础分类、处理机制及最佳实践。从`Error`与`Exception`的区分,到`try-catch-finally`和`throws`的运用,再到自定义异常的设计,全面解析如何有效管理程序中的异常情况,提升代码的健壮性和可维护性。通过实例代码,帮助开发者掌握异常处理技巧,确保程序稳定运行。
88 2
|
4月前
|
安全问题已经成为软件开发中不可忽视的重要议题。对于使用Java语言开发的应用程序来说,安全性更是至关重要
在当今网络环境下,Java应用的安全性至关重要。本文深入探讨了Java安全编程的最佳实践,包括代码审查、输入验证、输出编码、访问控制和加密技术等,帮助开发者构建安全可靠的应用。通过掌握相关技术和工具,开发者可以有效防范安全威胁,确保应用的安全性。
87 4
Java 泛型深入解析:类型安全与灵活性的平衡
Java 泛型通过参数化类型实现了代码重用和类型安全,提升了代码的可读性和灵活性。本文深入探讨了泛型的基本原理、常见用法及局限性,包括泛型类、方法和接口的使用,以及上界和下界通配符等高级特性。通过理解和运用这些技巧,开发者可以编写更健壮和通用的代码。
|
6月前
|
java安全特性
java安全特性
50 8
【性能与安全的双重飞跃】JDK 22外部函数与内存API:JNI的继任者,引领Java新潮流!
【9月更文挑战第7天】JDK 22外部函数与内存API的发布,标志着Java在性能与安全性方面实现了双重飞跃。作为JNI的继任者,这一新特性不仅简化了Java与本地代码的交互过程,还提升了程序的性能和安全性。我们有理由相信,在外部函数与内存API的引领下,Java将开启一个全新的编程时代,为开发者们带来更加高效、更加安全的编程体验。让我们共同期待Java在未来的辉煌成就!
141 11
【本地与Java无缝对接】JDK 22外部函数和内存API:JNI终结者,性能与安全双提升!
【9月更文挑战第6天】JDK 22的外部函数和内存API无疑是Java编程语言发展史上的一个重要里程碑。它不仅解决了JNI的诸多局限和挑战,还为Java与本地代码的互操作提供了更加高效、安全和简洁的解决方案。随着FFM API的逐渐成熟和完善,我们有理由相信,Java将在更多领域展现出其强大的生命力和竞争力。让我们共同期待Java编程新纪元的到来!
250 11
java系列之~~网络通信安全 非对称加密算法的介绍说明
这篇文章介绍了非对称加密算法,包括其定义、加密解密过程、数字签名功能,以及与对称加密算法的比较,并解释了非对称加密在网络安全中的应用,特别是在公钥基础设施和信任网络中的重要性。
【Java集合类面试十二】、HashMap为什么线程不安全?
HashMap在并发环境下执行put操作可能导致循环链表的形成,进而引起死循环,因而它是线程不安全的。
JSF支付功能大揭秘:探索如何在Java世界中实现安全无缝的在线支付体验
【8月更文挑战第31天】在电子商务和在线交易日益普及的今天,实现在线支付功能已成为许多Web应用的必备需求。JavaServer Faces (JSF) 作为一种流行的Java Web框架,提供了丰富的组件和工具来构建用户界面,包括与支付网关集成以实现在线支付。支付网关是处理信用卡和借记卡支付的系统,在商家和银行之间起到桥梁作用。本文将探讨如何使用JSF与支付网关集成,以及实现在线支付功能时需要考虑的关键点
76 0