标签: checkmarx

堆检查安全漏洞

我已经针对checkmarx工具运行我的java应用程序以获取安全漏洞,并且它经常给出一个问题 - 堆检查,对于我使用字符数组的密码字段.除了指出密码字段的声明之外,它没有给出任何解释.

private char[] passwordLength;
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助我,我还能找到解决这个问题的方法吗?

java security static-code-analysis checkmarx

9
推荐指数
1
解决办法
1万
查看次数

如何在 Http Post 中清理和验证 Pojo 以通过 Checkmarx 扫描

我正在使用 Spring MVC,并且我有一个具有 HTTP 方法 Post 的端点。

\n\n
@ResponseBody\npublic ResponseEntity<Object> request(@RequestBody @Valid RequestPayload requestBody){\n //Code\n}\n\npublic class RequestPayload {\n\n    private String op;\n    private Collection<Payload> payload;\n    //Getter & Setters\n\n}\n\npublic class Payload implements Serializable {\n    private Map<String, Object> properties = new HashMap<>();\n    //Getter & Setters\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

我使用 JSON Sanitizer 和 Jsoup 将其转换为 JSON,然后使用下面的代码再次转换为 Java 类。

\n\n
private static final ObjectMapper MAPPER = new ObjectMapper();\npublic static <T> T sanitizeHTML(T requestBody, Class<T> klass) {\n    if(Objects.nonNull(requestBody)) {\n        try {\n            return MAPPER.readValue(Jsoup.clean(MAPPER.writeValueAsString(requestBody), Whitelist.none()), klass);\n        } catch (IOException …
Run Code Online (Sandbox Code Playgroud)

java xss spring sanitization checkmarx

9
推荐指数
0
解决办法
3425
查看次数

如何使用 Spring Boot 验证和清理 HTTP Get?

我不断从 Checkmarx 代码扫描仪收到这个烦人的错误,

Method getTotalValue at line 220 of src\java\com\example\PeopleController.java 
gets user input for the personName element. This element’s value then flows through
the code without being properly sanitized or validated and is eventually 
displayed to the user. This may enable a Cross-Site-Scripting attack. 
Run Code Online (Sandbox Code Playgroud)

这是我的代码。我想我做了所有必要的验证。还有什么???

@Slf4j
@Configuration
@RestController
@Validated 

public class PeopleController {

    @Autowired
    private PeopleRepository peopleRepository; 

    @RequestMapping(value = "/api/getTotalValue/{personName}", method = RequestMethod.GET)
    @ResponseBody
    public Integer getTotalValue(@Size(max = 20, min = 1, message = "person is not found") 
    @PathVariable(value="personName", required=true) …
Run Code Online (Sandbox Code Playgroud)

validation http-get spring-boot checkmarx

8
推荐指数
2
解决办法
3万
查看次数

checkmarx - 如何解决存储绝对路径遍历问题?

Checkmarx - v 9.3.0 HF11

我将 env 值作为数据目录路径传递到 dev/uat 服务器中使用的 docker 文件中

ENV DATA /app/data/
Run Code Online (Sandbox Code Playgroud)

在本地,使用以下环境变量

数据=C:\projects\app\data\

getDataDirectory("MyDirectoryName"); // MyDirectoryName 存在于数据文件夹中

public String getDataDirectory(String dirName)
{
    String path = System.getenv("DATA");
    if (path != null) {
        path = sanitizePathValue(path);
        path = encodePath(path);

        dirName = sanitizePathValue(dirName);
        if (!path.endsWith(File.separator)) {
            path = path + File.separator;
        } else if (!path.contains("data")) {
            throw new MyRuntimeException("Data Directory path is incorrect");
        }
    } else {
        return null;
    }

    File file = new File(dirName); // NOSONAR

    if (!file.isAbsolute()) …
Run Code Online (Sandbox Code Playgroud)

java security secure-coding docker checkmarx

8
推荐指数
1
解决办法
4350
查看次数

如何清理和验证用户输入以通过Checkmarx扫描

我有一个端点,从用户获取一个String,如下所示.

@GET
@Path("/{x}")
public Response doSomething(@PathParam("x") String x) {
    String y = myService.process(x);
    return Response.status(OK).entity(y).build();
}
Run Code Online (Sandbox Code Playgroud)

Checkmarx抱怨这个元素的值然后"流经代码而没有经过适当的消毒或验证,并最终在方法doSomething中显示给用户"

然后我尝试了这个:

@GET
@Path("/{x}")
public Response doSomething(@PathParam("x") String x) {
    if (StringUtils.trimToNull(x) == null || x.length() > 100) { 
        throw new RuntimeException(); 
    }
    x = x.replace("'", "").replace("`", "").replace("\\", "").replace("\"", "")
    String y = myService.process(x);
    y = y.replace("'", "").replace("`", "").replace("\\", "").replace("\"", "")
    return Response.status(OK).entity(y).build();
}
Run Code Online (Sandbox Code Playgroud)

但它仍然抱怨并认为这是一个高度严重的漏洞.

如何正确消毒或验证以满足Checkmarx的要求?

java security code-analysis static-code-analysis checkmarx

6
推荐指数
1
解决办法
7966
查看次数

如何解决 Checkmarx 报告的 Stored XSS 问题

我正在处理的代码库已由 Checkmarx 进行了分析,并返回了包含“Stored XSS”问题的报告。该问题指出:

\n\n

方法 GetHomepageFilterByLocale HomepageRepo.cs 从数据库中获取 Select 元素的数据。然后,此元素\xe2\x80\x99s 值会流经代码,而不会被正确过滤或编码,并最终在方法 GetProductsByFilterType HomepageController.cs 中显示给用户。这可能会引发存储型跨站点脚本攻击。

\n\n

是否有解决此问题的标准推荐方法?

\n\n

请参阅下面的代码片段了解上述两种方法。

\n\n

主页Repo.cs

\n\n
public HomepageFilter GetHomepageFilterByLocale(int localeId)\n    {\n        return _context.HomepageFilter.SingleOrDefault(x => x.LocaleId == localeId);\n    }\n
Run Code Online (Sandbox Code Playgroud)\n\n

HomepageController.cs

\n\n

GetHomepageViewModel() 方法是调用存储库方法的地方。

\n\n
[HttpGet]\n    public ActionResult GetProductsByFilterType(int locale, string filterType)\n    {\n        HomepageViewModel model = GetHomepageViewModel(locale, filterType);\n\n        if (model?.Products != null)\n        {\n            model.Products.ForEach(p => p.Name = HttpUtility.HtmlEncode(p.Name));\n            model.Products.ForEach(p => p.ImageUrl = HttpUtility.HtmlAttributeEncode(p.ImageUrl));\n        }\n\n        return Json(model, JsonRequestBehavior.AllowGet);\n    }\n
Run Code Online (Sandbox Code Playgroud)\n

c# xss checkmarx

6
推荐指数
1
解决办法
2万
查看次数

CheckMarx 中等严重性警告 - 启动时的 HttpOnly cookie

CheckMarx 正在标记一个错误,对我来说这看起来像是误报。我们的应用程序是用 C# 编写的,并使用 ASP.NET Core。

错误是:

Web 应用程序的 Startup 方法在 Startup.cs 的第 22 行创建一个 cookie Startup,并在响应中返回它。但是,应用程序未配置为自动设置具有“httpOnly”属性的 cookie,并且代码未显式将此添加到 cookie。

这是第 22 行:

public class Startup
Run Code Online (Sandbox Code Playgroud)

我们确实正确设置了 cookie 策略:

app.UseCookiePolicy(new CookiePolicyOptions
{
    HttpOnly = Microsoft.AspNetCore.CookiePolicy.HttpOnlyPolicy.Always
});
Run Code Online (Sandbox Code Playgroud)

但 CheckMarx 仍在标记此警告。而且我不认为我的 Startup 类会创建一个名为 Startup 的 cookie。

我在这里找到了类似的帖子(未答复) - https://github.com/Azure/azure-functions-vs-build-sdk/issues/469

那么这是误报吗?我如何让 CheckMarx 停止标记它?

c# secure-coding checkmarx asp.net-core

6
推荐指数
2
解决办法
1万
查看次数

Checkmarx Java 修复日志伪造 - 清理用户输入

任何人都可以建议以下 getCourses 方法中 courseType 变量所需的正确清理/验证过程。我正在使用该变量写入日志文件。

我试过 HtmlUtils.HtmlEscape() 但没有得到预期的结果。

谢谢!

@RequestMapping(value = "/retriveCourses", method = RequestMethod.GET)
@ResponseBody
public List<Course> getCourses(@RequestParam(value = "courseType", required = false) String courseType) {

}
Run Code Online (Sandbox Code Playgroud)

java spring-mvc secure-coding spring-boot checkmarx

5
推荐指数
2
解决办法
9139
查看次数

Checkmarx 扫描 - 如何修复 Missing_HSTS_Header 警告?

在我的 Node.js 应用程序上运行 Checkmarx 扫描后,我收到了中等严重性 -> Missing_HSTS_Header的警告。这段代码仅返回metadata.json 文件的内容(突出显示为错误源的是“res.json”)。

const app = express();
app.get('/metadata', (req, res, next) => {
    res.json(JSON.parse(fs.readFileSync(path.join(__dirname, 'metadata.json'), 'utf8')));
});
Run Code Online (Sandbox Code Playgroud)

最初,这看起来很容易解决。例如,在此链接中,我找到了 3 个可能的解决方案 - https://github.com/cloudfoundry-incubator/service-fabrik-broker/issues/445

但问题是这些都不起作用。我尝试使用头盔,我使用了 hsts npm 包,我确实使用此命令在控制台中显式设置了 hsts 代码。

res.setHeader("Strict-Transport-Security", "max-age=31536000");
Run Code Online (Sandbox Code Playgroud)

然而,Checkmarx 仍然在抱怨。其他人也经历过这个吗?如果是,您是否知道可能出了什么问题以及为什么在线发布的所有解决方案都不起作用?谢谢

编辑:在这里,我在 Checkmarx 文档中找到了一种明确的方法,但警告不断出现 - https://github.com/Checkmarx/JS-SCP/blob/master/src/communication-security/ssl-tls.md

javascript node.js secure-coding hsts checkmarx

5
推荐指数
1
解决办法
2万
查看次数

SonarQube 和 Checkmarx CxSAST 和 CxSCA 之间有什么区别?

我已将 SonarQube 和 Checkmarx SAST 和 SCA 集成到 Azure DevOps 构建管道中。我可以毫无问题地查看 SonarQube 和 Checkmarx 报告。

我有以下问题。有人可以澄清一下吗:

  1. SonarQube 和 Checkmarx CxSAST 有什么区别?
  2. 这两者之间有什么共同点呢?
  3. 在哪些情况下首选 SonarQube 和 Checkmarx?

sonarqube checkmarx azure-pipelines

5
推荐指数
1
解决办法
1万
查看次数