问题标签 [static-analysis]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 内部类在 Java 中不使用外部类有什么问题?
我在 Eclipse 中使用静态分析器来检查我的代码。一个类 foo 有一个内部类 bar。我收到以下错误:
为什么这是一个错误?只要外部类使用内部类就不足以使这些信息隐藏有用和正确吗?
内部类不是静态的。
c - 使用编译器警告捕获常量 1 左移的溢出?
我们在 Linux 内核中编写代码,所以尽我所能,我无法让 PC-Lint/Flexelint 在 Linux 内核代码上工作。内置符号等太多了。但这是一个附带问题。
我们有任意数量的编译器,从 gcc 开始,但也有其他的。随着时间的推移,它们的警告选项越来越强大,它们也是非常强大的静态分析工具。
这是我想要捕捉的。是的,我知道它违反了一些在代码审查中很容易发现的东西,例如“没有幻数”和“当心位移”,但前提是你碰巧看到了那段代码。无论如何,这里是:
进一步更新的问题描述——即使 bar 限制为 16,仍然是一个问题。澄清一下,问题是隐含的 int 类型的常量,它在计划外使复杂的表达式违反了所有计算都以相同的大小和符号进行的规则。
问题:'1' 不是 long long,但作为一个小值常量,默认为 int。因此,即使 bar 的实际值从未超过,例如 16,(1<<bar)
表达式仍然会溢出并破坏整个计算。
可能正确的解决方案:改为写 1ULL。
是否有一个众所周知的编译器和编译器警告标志会指出这个(修订的)问题?
java - Fortify 源分析器和 Apache Lenya
我正在尝试将 Fortify 源代码分析器用于我学校的一个研究项目,以测试开源 Java Web 应用程序的安全性。我目前正在研究 Apache Lenya。我正在使用最后一个稳定版本(Lenya v2.0.2)。
在根目录中有一个名为build.sh
. 调用此文件以使用发行版附带的 Ant 版本(在tools/bin
文件夹中)构建 Lenya。当我运行时,我可以很好地构建 Lenya ./build.sh
。因此,假设在 Fortify 中运行以下命令会起作用:
但是,当我尝试运行时:
我得到:
未找到构建 ID Lenya。
我查看了buid.sh文件并注意到它只是重置当前的 ant home、类路径和 ant 选项变量,运行 ant build 命令,并将值重置为默认值。所以我手动重置所有变量(没有脚本)而不是运行脚本并运行:
然后我跑了:
但我得到了同样的错误。我不确定这是因为我做错了什么,还是 Fortify 做错了什么。任何见解都会很棒。
c# - FxCop - CA1034 错误 - 为什么?
我正在使用 FxCop 1.36 运行静态代码分析,并且不断收到警告 CA1034:NestedTypesShouldNotBeVisible。
如果父类被声明为内部或私有,我会理解,但它是公共的。为什么 TimerReset 被宣布为 public 会不好?
我错过了什么,或者这是可以忽略的东西?
感谢您的任何意见!
以下是导致此警告的代码摘录:
c# - C# 的语法检查器
我们正在寻找 C# 的语法检查器,类似于 Java 的 Checkstyle。有人对我们可以使用的任何工具有任何建议吗?理想情况下,它应该有一个 Visual Studio 2008 的插件。
database-design - 用于数据库设计的静态分析工具
我正在寻找数据库层的静态分析工具。我得到了一些关于审查 PLSQL、TSQL代码的答案,我想知道有哪些选项可用于审查用于表及其列的命名约定、外键约束和触发器等的数据库设计。
有一篇关于ApexSQL Enforce的MSDN 文章,但它主要针对 SQLServer。
c++ - 为专有 API 开发静态源代码分析工具?
有一个基于 C++ 构建的专有 API。因此它使用了 C++ 的所有特性,然后拥有自己的 API。有一些 API 的功能与 C++ API 完全相同(比如 malloc 有 Stralloc),这些 API 是出于性能原因而提供的。
尽管有许多可用于 C++ 的静态代码分析器,但我们不能使用其中任何一个。需要有一个可以在具有专有 API 的代码上运行的静态代码分析器。
我想知道如何开始开发代码分析器。它可能不需要像 C++ 可用的那样非常面向功能。我想从基本的东西开始,比如报告未使用的变量、缓冲区溢出、内存泄漏。
任何指导将不胜感激。
[更新] 我发现以下问题正是我一直在寻找的,唯一的区别是,我关心的是专有 API 而不是 Java。到目前为止,我已经得到了几个很好的答案,但我真的很想从经历过这种发展的人那里了解更多。
java - How do I enforce assigning to arguments of methods using FindBugs?
As an alternative to littering my code with thousands of final keywords in front of my parameters, I'm trying to enforce it using FindBugs.
It doesn't seem possible to do this, but there should be a way, shouldn't there?
Thanks
java - FindBugs 和 Maven
我希望 Maven 生成一个 FindBugs 报告,其中错误按严重性分组,而不是按文件分组。然后我就可以立即专注于最严重的错误。我在 Eclipse 的 FindBugs 插件中看到了类似的功能。Maven可以做到这一点吗?
c# - 用于 SQL 注入的 Microsoft 源代码分析器 (MSCASI_ASP) 的 ASP.NET / C# 等效项?
Microsoft Source Code Analyzer for SQL Injection (MSSCASI_ASP)是用于经典 ASP VBScript 代码的静态代码分析器,可帮助识别可能存在 sql 注入漏洞的页面。
该工具似乎只支持 vbscript(“该工具只理解用 VBScript 编写的 ASP 代码”),我认为即使是 VBscript,它也只支持 Classic ASP。我想知道是否有具有类似方法的工具能够处理 ASP.NET 代码,尤其是 C# ASP.NET 代码。