《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

相关文章
|
3月前
|
安全 Java
JAVA 线程安全
【1月更文挑战第4天】JAVA 线程安全
|
4月前
|
监控 安全 数据可视化
【Java】UWB高精度工业人员安全定位系统源码
【Java】UWB高精度工业人员安全定位系统源码
71 0
|
6天前
|
存储 安全 Java
Java中的容器,线程安全和线程不安全
Java中的容器,线程安全和线程不安全
15 1
|
8天前
|
SQL 安全 Java
Java安全编程:防范网络攻击与漏洞
【4月更文挑战第15天】本文强调了Java安全编程的重要性,包括提高系统安全性、降低维护成本和提升用户体验。针对网络攻击和漏洞,提出了防范措施:使用PreparedStatement防SQL注入,过滤和转义用户输入抵御XSS攻击,添加令牌对抗CSRF,限制文件上传类型和大小以防止恶意文件,避免原生序列化并确保数据完整性。及时更新和修复漏洞是关键。程序员应遵循安全编程规范,保障系统安全。
|
25天前
|
存储 安全 Java
【Java技术专题】「攻破技术盲区」攻破Java技术盲点之unsafe类的使用指南(打破Java的安全管控— sun.misc.unsafe)
【Java技术专题】「攻破技术盲区」攻破Java技术盲点之unsafe类的使用指南(打破Java的安全管控— sun.misc.unsafe)
33 0
|
4月前
|
存储 安全 Java
Java并发编程学习4-线程封闭和安全发布
本篇介绍 对象的共享之线程封闭和安全发布
62 2
Java并发编程学习4-线程封闭和安全发布
|
2月前
|
存储 安全 算法
Java泛型与集合:类型安全的集合操作实践
Java泛型与集合:类型安全的集合操作实践
|
4月前
|
监控 安全 数据可视化
java智慧工地源码:助力数字建造、智慧建造、安全建造、绿色建造
智慧工地围绕建设过程管理,建设项目与智能生产、科学管理建设项目信息生态系统集成在一起,该数据在虚拟现实环境中,将物联网收集的工程信息用于数据挖掘和分析,提供过程趋势预测和专家计划,实现工程建设的智能化管理,提高工程管理信息水平,逐步实现绿色建设和生态建设。
21 0
|
4月前
|
传感器 数据采集 安全
Java智慧工地源码:进度、质量、 成本、安全尽在掌握
Java智慧工地源码:进度、质量、 成本、安全尽在掌握
32 0
|
5月前
|
存储 安全 Java
Java内存隔离:保障程序稳定与安全的基石
Java内存隔离:保障程序稳定与安全的基石