39 | 怎么控制好代码的权力?
范学雷
该思维导图由 AI 生成,仅供参考
在前面,我们讨论了“敏感信息经过授权才可以使用”的这样一条有关编码安全的实践。我们还可以把这个实践扩展到更大的范围:信息和资源,需经授权,方可使用。这个信息和资源,不仅仅包括用户数据这样的敏感信息,还包括计算机代码、产品和服务。
授权使用这些资源,需要遵循“最小授权”的原则。所授予的权力,能够让应用程序完成对应的任务就行,不要授予多余的权力。为了方便,我们可以把“最小授权”这个概念拆分成如下的两个部分来理解:
最小权力的设计
最小限度的授予
最小权力的设计
其实,不管使用什么编程语言,我们编写的代码都会涉及到代码权力的设计。最常见的设计,就是代码的访问控制权限的设计。
一段代码访问应用程序接口的过程,一般需要至少两个步骤,第一步是加载类库,第二步是调用接口。这两个步骤,都需要设计好访问控制权限。
模块的访问权限
下面的例子,就是一个 Java 模块的权限设计(module-info.java)。这个权限设计,定义了一个 example.coding 模块。这个模块允许外部代码使用它提供的 com.example.coding 内部接口。
这个模块可能还包含其他的接口,比如位于 com.example.implement 包内的代码。由于模块的定义没有允许外部代码使用除了 com.example.coding 包空间以外的接口,那么 com.example.implement 包内的接口,即便是 public 接口,外部代码也不能直接访问了。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文介绍了控制代码权限的重要性以及相关的最小授权原则。文章首先讨论了最小权限的设计,包括模块和接口的访问权限,强调了将开放的接口和封闭的代码分割开来,以提高代码的安全性和可维护性。其次,文章提到了最小限度的授予权限,强调了避免赋予过多的权力,以防止安全漏洞和攻击。此外,文章还介绍了特权代码的使用和设计原则,强调了特权代码要短小,并建议优先考虑使用指定权力的接口。最后,文章指出了代码权力设计的重要性,并提供了一个练习题来分析代码中的权力设计问题。总的来说,本文通过讨论代码权限控制的原则和实践,强调了在编码过程中应该注重安全性和权限的合理控制。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《代码精进之路》,新⼈⾸单¥59
《代码精进之路》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(2)
- 最新
- 精选
- Sebastian类、方法、两个参数都可以改成final,内部变量complement也可以是final。 有个疑问,final关键词出了安全之外,会不会影响性能?会不会性能更好?
作者回复: 我没有测试过final关键字对性能的影响;暂时还没有想到编译器该怎么处理,才能提升使用final关键字的性能。不过,是一个有意思的点!
2022-08-05归属地:美国 - ifelse在编码的过程中,要考虑代码的权力;权力的设计和使用,要遵循“优先最小权限”的原则。--记下来2022-08-01归属地:浙江
收起评论