8

在某些语言中,有规则/最佳实践/等。促进软件安全,确保预期的运行时行为等。想到的两个是用于 C/C++ 的 MISRA 和用于 Ada 的 Ravenscar 配置文件。如果您的代码被标记为遵循这些标准,通常会有一种温暖的模糊感。Java有这样的标准吗?

4

5 回答 5

9

我认为 Java 没有 MISRA C/C++ 最佳实践之类的东西,而且我认为像 Java 这样的语言也没有必要这样做,因为它没有像 C 和 C++ 那样多的未定义或未指定行为的角落有。Java 中缺少显式指针以及数组索引的边界总是由运行时检查等特性使 Java 成为比 C 或 C++ 更安全的语言。

大多数 Java 开发人员似乎都遵循一个通用的编码标准:Java 编程语言的代码约定,但这更像是一种风格指南,而不是最佳实践指南。

有一些很好的和众所周知的 Java 静态代码分析工具:例如FindBugsPMD,它们将检查您的代码是否存在可能的危险结构或不良做法。

如果您想了解 Java 中的潜在陷阱,那么强烈推荐两本书:Effective JavaJava Puzzlers

另外,类似的资源包括:

于 2011-05-18T20:37:23.900 回答
3

目前,没有 MISRA Java - 也没有任何立即创建的计划。

MISRA 技术委员会已经对该主题进行了几次简短的讨论,但在没有任何需求(和/或自愿参与该主题的工作)的情况下,它不太可能发生。

更新:六年过去了……

这个问题已经被问过好几次了,在我作为演讲者参加的会议上,通常得到了听众的广泛支持。我总是通过询问愿意成为委员会成员的观众来回答……这让房间安静了:(

TL;DR:如果有足够多的志愿者挺身而出,我们就会去做!

[以个人身份发表,尽管是 MISRA 技术委员会成员]

于 2012-09-27T09:35:25.457 回答
2

SEI 证书:

Java 编码指南包括在 Java 标准版 7 平台环境中安全编程的推荐实践。这是一项正在进行的工作,我们积极寻求您的反馈和参与,以使这项工作取得成功。我们感谢并承认所有的贡献者。

https://www.securecoding.cert.org/confluence/display/jg/Java+Coding+Guidelines

于 2014-11-13T13:28:21.760 回答
1

对于那些关注这个线程的人,有一个开放的安全关键 JAVA (oSCJ) 计划正在进行,它正在为安全关键应用程序 (JSR-302) 定义 JAVA 语言的一个子集。 http://jcp.org/en/jsr/detail?id=302

于 2013-08-07T13:25:01.727 回答
0

有一本书叫《代码完成》。这是由曾在 Microsoft 工作过的程序员编写的,并且还具有使用 2/3 不同高级语言的专业软件开发知识。除了 MISRA C++,我还使用这本书。“Code Complete”是一本独立于语言的书籍,有助于塑造您的专业软件工程实践。

于 2012-11-04T20:29:04.637 回答