CGI存储的XSS-Checkmarx在C中的scanf / printf上报告

时间:2019-07-04 08:01:15

标签: c security xss checkmarx

我们有一个基于C / C ++的产品生成的checkmarx报告,该报告提到有关CGI存储的XSS的内容,并指向scanf / printf或fgets / printf组合。它说'未验证的DB输出在file.c文件的第55行中找到。在printf的第55行'中发现了可能的XSS利用。

链接How to solve Stored XSS issue reported by Checkmarx讨论了类似的问题,但这是针对Java的-提出的解决方案是使用编码。 我们对C字符串有这样的编码吗?另外,我读到我们需要验证发送到printf的输入字符串。我不确定需要进行哪种验证。 报告所引用的代码中的语句为:

FILE * fp = fopen(...); // fp is valid
char buffer[256];

fgets(buffer, sizeof(buffer), fp);
printf( "%s", buffer ); // this is line 55

作为验证的一部分,我们是否应该检查缓冲区中是否存在'%'和'%n'个字符?

0 个答案:

没有答案